https open api_钉钉API发送消息

前言

Orchestrator有Call外部REST API/OPEN API的功能,利用钉钉开放的API,可以实现JDE内容转化成消息进行发送。此文档没有实现,只是整理如何Call API,这样在Orchestrator中就可以方便调用,理论上与微信的API发送消息接口是一致的。

注册钉钉团体(公司)

  • 理论上可以注册多个,可用于发送不同任务类型

  • 注册地址:https://oa.dingtalk.com/register_new.htm#/

a228307a40892f2a737e96204b91259c.png

  • 如果你的手机号已经注册过钉钉,那么可以在下面创建新团队.

9d7f3d6fd092adce45200d71e3d7631f.png

  • 成功后,可以下载钉钉PC或是手机端来登录使用

    1ec9adfec514970ff8f6fdcc120560cc.png

  • 钉钉开放平台地址:https://open-dev.dingtalk.com/#/index

    c01bb62bcb96948feda271e569c33627.png

  • 注意2020/6/15号后需要激活才能开发应用

  • 通讯录中添加部门与人员。

    287d9c119c0bf5622f65b52e7ff9a147.png

新增应用

工作台里边新增一个应用,路径如下图:

0570d7f012fc928ba21076eb00abf823.png

  • 点击自建应用将跳转到:https://open-dev.dingtalk.com/#/create-app

  • 填写应用名称, 上传一个图片以及简介。

149520050965a9bd64731a06950c0ae9.png

  • 点击下一步后,需要输入AIS服务器调用钉钉API的IP地址(公网的IP).

4af87fbe7bca7d55d9eb0d4d1aa08a23.png

获取应用的AgentId,AppKey,AppSecret

ba6304821b819847dfca809c35294295.png

进入应用点击查看详情

c8e63a841f0ee0eb99245934bb981c87.png

在最后看到三个代码,后续都需要使用。

11609178c2de01a501cddb93f14a330c.png

获取用户/部门的ID

消息需要送达的目标可以是具体用户,也可以是部门

  • 通讯录界面里边可以找到

     https://oa.dingtalk.com/contacts.htm#/contacts

55e7c7ca83a810bb93e473a7b13cd52a.png

  • 如果有设置部门,则点击该部门,也是在该位置有部门ID。

Call 钉钉API设置

因为看官方的文档不敢恭维,调试界面更是无语d3f77abfe4463ad1894480c027e2456b.png,范例主要是以SDK的方式进行,不方便我们阅读,此处汇总一下可能用到的API。

获取Token

方法:Get

路径:https://oapi.dingtalk.com/gettoken?appkey={{appkey}}&appsecret={{appsecret}}

返回

{    "errcode": 0,    "access_token": "d8666dc1929a3992801d07d33aa6272c",    "errmsg": "ok",    "expires_in": 7200}

发送工作消息

方法:Post

路径:https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token={{access_token}}

主体Body:

{    "agent_id": "{{AGENTID}}",    "userid_list": "{{USERID}}",    "dept_id_list": "",    "to_all_user": false,    "msg": {        "msgtype": "text",        "text": {            "content": "消息内容"        }    }}

说明:此示例为最简单的文本,可以参考官方介绍msg的部分:

https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup

返回

{    "errcode": 0,    "task_id": 217791522272,    "request_id": "10oczk4j3pysa"}

上传文件到服务器

方法:Post

路径:https://oapi.dingtalk.com/media/upload?access_token={{ACCESS_TOKEN}}&type=file

说明:type: 媒体文件类型,分别有图片(image)、语音(voice)、普通文件(file) , 此示例是file.

Header: Content-Type: multipart/form-data;

主体Body:

file: 文件

     key:media

返回

{    "errcode": 0,    "errmsg": "ok",    "media_id": "@lAjPDeRERl-SdZbOKpI_r85tuA2J",    "created_at": 1591874201427,    "type": "file"}

发送文件到用户

方法:Post

路径:https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token={{access_token}}

主体Body:

{    "agent_id": "{{AGENTID}}",    "userid_list": "{{USERID}}",    "dept_id_list": "",    "to_all_user": false,    "msg": {        "msgtype": "file",        "file": {            "media_id": "{{MEDIA_ID}}"        }    }}

MEDIA_ID:上传文本后得到的media_id

返回

{    "errcode": 0,    "task_id": 217791522272,    "request_id": "10oczk4j3pysa"}

获取文件的文本内容

如果文件是text的格式,可以用Get的方式直接读取文件内容(media_id)。

方法:Get

路径:https://oapi.dingtalk.com/media/downloadFile?access_token={{ACCESS_TOKEN}}&media_id={{MEDIA_ID}}

返回:文件的文本内容.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值