前言
钉钉目前是管理公司比较常用的软件,为了完善公司的管理制度,为了加强公司的管理模式,所以现在需要调用钉钉的发送消息的接口,进行企业通知消息的发送.
叙述
准备工作
获取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);//获取accesstokenString 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;}
小结
在调用第三方接口的时候一定要先阅读开发须知,真的很帮助我们的开发哦.
感谢您的阅读~~