调用钉钉接口--发送工作通知消息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zmh458/article/details/84728421

前言

钉钉目前是管理公司比较常用的软件,为了完善公司的管理制度,为了加强公司的管理模式,所以现在需要调用钉钉的发送消息的接口,进行企业通知消息的发送.


叙述

准备工作

获取appKey和appSecret

登入oa管理后台,点击“工作台”,点击“自建应用”。
在这里插入图片描述
在这里插入图片描述
跳转到开发者后台,填入应用基本信息,选择“企业内部自主开发”
在这里插入图片描述

选择“开发应用”这个开发模式,输入服务端出口IP等信息。
在这里插入图片描述
创建完成后,进入应用详情页,可以找到appKey和appSecret。同时可以进入“权限管理”页面,进行appKey和appSecret的权限设置,获取手机号、通讯录权限。
在这里插入图片描述
在这里插入图片描述

获取access_token

【注意】正常情况下access_token有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。
请求方式:GET(HTTPS)
请求地址:https://oapi.dingtalk.com/gettoken?appkey=id&appsecret=secret
参数说明:
在这里插入图片描述
SDK请求示例(JAVA):

DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest request = new OapiGettokenRequest();
request.setAppkey("appkey");
request.setAppsecret("appsecret");
request.setHttpMethod("GET");
OapiGettokenResponse response = client.execute(request);

返回说明:

{
    "errcode": 0,
    "errmsg": "ok",
    "access_token": "fw8ef8we8f76e6f7s8df8s"
}

发送工作通知消息

发送工作通知消息可以调用钉钉的接口,也可以使用httpClient的post请求得到想要的数据.

调用接口的方式

 public static boolean sendWorkMessage(String CORPID,String CORPSECRET,String AGENTID,String toUsers) throws Exception {
        String timeStr= sdfTime.format(new Date()).toString();
        String time=timeStr.substring(11,16);
        //获取accesstoken
        String accessToken = GetAccessToken.getAccessToken(CORPID,CORPSECRET);
        MessageBody.LinkBody linkBody = new MessageBody.LinkBody();
        linkBody.setMessageUrl("https://www.baidu.com/");
        linkBody.setPicUrl("@lALOACZwe2Rk");
        linkBody.setTitle("今目标考勤异常 "+ time);
        linkBody.setText("亲,您的今目标没有打卡信息,系统已经向纪委发送通知消息,请您及时联系纪委哦!");

        //部门id列表,多个接收者用|分隔,TO_USER和TO_PARTY二者有一个必填
        String TO_PARTY = "";
        //发送微应用消息
        LightAppMessageDelivery lightAppMessageDelivery = new LightAppMessageDelivery(toUsers,TO_PARTY, AGENTID);

        //发送普通消息
        lightAppMessageDelivery.withMessage(MessageType.LINK, linkBody);
        MessageHelper.send(accessToken, lightAppMessageDelivery);
        System.out.println("成功发送文本消息");
        return true;
    }

发送通知

public static Receipt send(String accessToken, LightAppMessageDelivery delivery) 
		throws Exception {
	MessageService messageService = ServiceFactory.getInstance().getOpenService(MessageService.class);
	MessageSendResult reulst = messageService.sendToCorpConversation(accessToken, delivery.touser,
			delivery.toparty, delivery.agentid, delivery.msgType, delivery.message);
	Receipt receipt = new Receipt();
	receipt.invaliduser = reulst.getInvaliduser();
	receipt.invalidparty = reulst.getInvalidparty();
	return receipt;
	}

小结
在调用第三方接口的时候一定要先阅读开发须知,真的很帮助我们的开发哦.
感谢您的阅读~~

猜你喜欢

转载自blog.csdn.net/zmh458/article/details/84728421