从0到1接入钉钉消息通知

您所在的位置:网站首页 钉钉群消息通知怎么打开 从0到1接入钉钉消息通知

从0到1接入钉钉消息通知

2024-06-06 05:46| 来源: 网络整理| 查看: 265

前段时间给项目接入监控告警,消息通知渠道选了钉钉。预算的原因内部办公刚从飞书转回钉钉,飞书消息通知之前就有一套了,测试钉钉从应用授权到消息测试花了不少时间。这里记录下从钉钉开放平台权限申请到消息接收全流程,给后面有同样需求的人少踩坑。

申请开发者权限

让组织管理员在OA管理后台给你分配权限 在这里插入图片描述 或者自己新建一个测试主体,你就是管理员。因为没有组织架构,后面部门群组都要新建。 参考:https://open.dingtalk.com/document/dashboard/become-a-dingtalk-developer

创建应用

登录后台创建企业内部应用 在这里插入图片描述 在这里插入图片描述 建完你可以拿到AgentId、AppKey和AppSecret,后面对接开放平台接口的时候都要用到。

获取授权

拿到accessToken。 https://api.dingtalk.com/v1.0/oauth2/accessToken 入参

{ "appKey":"xx", "appSecret":"xxx" }

返回

{ "expireIn":7200, "accessToken":"xxx" }

接下来创建组织架构

创建部门

比如创建一级部门,技术部。 https://oapi.dingtalk.com/topapi/v2/department/create?access_token=xxx

{ "name":"技术部", "parent_id":1 }

会返回部门ID

{ "errcode":0, "result":{ "dept_id":xxx }, "errmsg":"ok", "request_id":"16mgjgpq1o4az" } 用户信息创建

往架构里面添加人,需要绑定手机号。 https://oapi.dingtalk.com/topapi/v2/user/create?access_token=xxx

{ "name":"Mary", "mobile":"168xxx", "dept_id_list":"xxx" }

返回用户ID

{ "errcode":0, "result":{ "unionId":"xxx", "userid":"xxx" }, "errmsg":"ok", "request_id":"16m7cylmugy2d" }

钉钉发送消息有两种方式,一种是工作通知,后面接收人列表如果要加入,就需要单独把对应的用户id加进来。 另一种是发送群聊消息,在群聊里面加个机器人虚拟用户,后面如果需要添加接收人,只需要把对应的人拉到群里就行了,消息是直接发群里的。

发送工作通知

https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=xx 比如发送一句文本通知

{ "msg":{ "msgtype":"text", "oa":{ "body":{ "content":"Linda监控告警消息测试" } }, "text":{ "content":"Linda监控告警消息测试" } }, "to_all_user":false, "agent_id":xx, "userid_list":"xx" }

agent_id是前面创建应用的时候,在应用详情的应用凭证AgentId,userid_list是目标用户ID列表。 发送完会返回任务ID,如果消息没触达,可以用于回溯排查问题。

{ "errcode":0, "errmsg":"ok", "task_id":xx, "request_id":"16m2lh8dy44el" }

接收到是这样的 在这里插入图片描述 还可以创建更复杂一点的工作通知

{ "msg":{ "msgtype":"oa", "oa":{ "body":{ "file_count":"2", "title":"技术度量", "author":"Linda", "content":"需求交付率(%)\t需求总工时(h)\t需求平均工时(h)\t冒烟通过率(%)\tBUG日清率(%)\tBUG完成率(%)\tBUG总工时(h)\tBUG平均工时(h)" }, "head":{ "bgcolor":"FFBBBBBB", "text":"季度缺陷报告" } }, "text":{ "content":"Linda监控告警消息测试" } }, "to_all_user":false, "agent_id":xx, "userid_list":"xxx" }

在这里插入图片描述 这里也支持Markdown格式的工作通知,但是测试的显示效果不理想,排版直接乱掉。

{ "agent_id":xx, "msg":{ "link":{ "title":"Nacos使用手册", "text":"# Nacos-examples [中文](./README.md) > 这是 Nacos java 程序样例,你可以通过 Nacos 原生SDK / Spring 操作服务和配置 ## 启动 Nacos 你可以本机启动单机模式Nacos https://nacos.io/zh-cn/docs/deployment.html 你也可以从阿里云上购买Nacos开发版 https://help.aliyun.com/document_detail/139460.html https://www.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0" }, "markdown":{ "title":"Nacos使用手册", "text":"# Nacos-examples [中文](./README.md) > 这是 Nacos java 程序样例,你可以通过 Nacos 原生SDK / Spring 操作服务和配置 ## 启动 Nacos 你可以本机启动单机模式Nacos https://nacos.io/zh-cn/docs/deployment.html 你也可以从阿里云上购买Nacos开发版 https://help.aliyun.com/document_detail/139460.html https://www.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0" }, "oa":{ "body":{ "title":"Nacos使用手册" }, "head":{ "text":"# Nacos-examples [中文](./README.md) > 这是 Nacos java 程序样例,你可以通过 Nacos 原生SDK / Spring 操作服务和配置 ## 启动 Nacos 你可以本机启动单机模式Nacos https://nacos.io/zh-cn/docs/deployment.html 你也可以从阿里云上购买Nacos开发版 https://help.aliyun.com/document_detail/139460.html https://www.aliyun.com/product/aliware/mse?spm=nacos-website.topbar.0.0.0" } }, "msgtype":"markdown", "action_card":{ "title":"Nacos使用手册", "btn_json_list":[ { "title":"Nacos使用手册" } ] } }, "userid_list":"xx" }

在这里插入图片描述

获取工作通知消息的发送结果

https://oapi.dingtalk.com/topapi/message/corpconversation/getsendresult?access_token=xx

{ "agent_id":xx, "task_id":xx }

有时发完没收到消息,可能不是传参的问题,仅仅是发送频率被限制了。

{ "errcode":41045, "errmsg":"超过发送全员消息的次数上限,每天最多3次", "request_id":"15rostv26oohc" }

如果是发送群聊消息,需要先创建群会话。

创建群会话

https://oapi.dingtalk.com/chat/create?access_token=xx owner指定群主,useridlist为群用户列表

{ "owner":"xxx", "mentionAllAuthority":0, "showHistoryType":1, "validationType":0, "name":"Linda消息通知", "useridlist":"[\"xxx\"]", "searchable":1, "chatBannedType":0, "managementType":0 }

返回群ID

{ "errcode":0, "chatid":"xx", "conversationTag":2, "errmsg":"ok", "openConversationId":"xx" } 应用添加机器人

进入应用,在消息推送开启机器人配置,拿到RobotCode在这里插入图片描述

机器人发送群聊消息 header { "x-acs-dingtalk-access-token":"xx" } body { "msgParam":"{\"content\": \"Linda monitor notify\"}", "msgKey":"sampleText", "robotCode":"xx", "openConversationId":"xx" }

返回

{ "processQueryKey":"xx" }

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3