前言

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

注册钉钉团体(公司)

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

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

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

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

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

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

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

新增应用

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

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

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

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

获取应用的AgentId,AppKey,AppSecret

进入应用点击查看详情

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

获取用户/部门的ID

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

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

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

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

Call 钉钉API设置

因为看官方的文档不敢恭维,调试界面更是无语,范例主要是以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}}

返回:文件的文本内容.

https open api_钉钉API发送消息相关推荐

  1. python调用钉钉API发送消息

    #!/usr/bin/env python # -*- coding: utf-8 -*- # 2017-8-20 钉钉API发送消息import urllib, urllib2 import req ...

  2. Flowable集成钉钉实现抄送发送消息

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频地址:https://www.bilibili.com/video/av797746 ...

  3. java 调用微信api发送消息

    要在 Java 中调用微信 API 发送消息,你需要做的第一步是在微信公众平台中注册自己的公众号,然后获取到自己的 AppID 和 AppSecret. 然后你可以使用微信公众平台提供的开发文档,来了 ...

  4. SAP ABAP 添加企业微信群机器人并调用 API 发送消息

    SAP ABAP 添加企业微信群机器人并调用 API 发送消息 引言: 这篇文章以我在个人开源项目"任务管理服务(ZTASK)"中的应用为例,通过讲述使用企业微信机器人实现任务的通 ...

  5. C#调用新浪微博API发送消息成功

    成功一小步,用C#调用新浪微博API发送消息成功,庆祝一下.其实没什么难的,主要是看新浪的开发文档受到了误导. 在新浪的文档里面的参数从说明到例子都是组合参数,并且遗漏了一个参数说明,调试的时候查看错 ...

  6. C# 钉钉群机器人发送消息代码实现

    本文属于个人原创作品.个人总结,谢绝转载.抄袭.如果您有疑问或者希望沟通交流,可以联系QQ:865562060. 一.开始接入 1.开始接入钉钉之前,首先需要了解企业接入钉钉的概述:https://o ...

  7. linkedin api php,php – 如何使用linkedin api发送消息/通知?

    我有一个通过linkedin API验证用户的应用程序: >应用程序是否可以向授权它的所有用户发送消息? (即:应用程序的系统通知) >是否可以向应用程序用户的子集发送消息? (即:黄金会 ...

  8. c#调用企业微信服务端API发送消息和图片

    1.首先获得企业微信的企业ID 2.获得企业微信里面的建立的小程序的APPID和Secret 以上不会的自行百度. 3.建立共用类QYWeixinHelper public class QYWeixi ...

  9. Python3 使用企业微信 API 发送消息

    现在大部分情况下,企业里运维监控的系统都需要给运维人员发送一些报警之类的信息,之前都是发送邮件,目前有腾讯推出了企业微信,也开放了其 API 接口.我们可以利用其 API 接口来给企业微信第账号发送信 ...

最新文章

  1. 福布斯:14位技术专家预测,未来哪些行业将被AI颠覆?
  2. c语言程序上级考试答案,[转载]计算机C语言二级上级考试套题(二)
  3. 某机器字长8位,试用如下所给芯片设计一个存储器,容量为10KW,其中RAM为高8KW,ROM为低2KW,最低地址为0(RAM芯片类型为:4K×8。ROM芯片为:2K×4)。
  4. jquery中serialize()序列化函数
  5. CxImage 使用报错解决办法
  6. 计算机中win是哪个版本,win7系统应该选择哪个版本比较好
  7. (附源码)计算机毕业设计ssm电商后台管理系统
  8. 敏捷测试的关键成功要素
  9. 【Lintcode】741. Calculate Maximum Value II
  10. python 文件读取
  11. html5钟表实例,HTML5元素Canvas实例之钟表
  12. orm查询方式与优化
  13. linux配置samba用户时失败,Ubuntu下Samba的设置,及用户登录失败的解决
  14. 国内外云服务现状及发展探讨
  15. 超级壁纸android,【教程】MIUI最新超级壁纸安卓全机型安装指南
  16. Python通过区号和校验位校验身份证号是否合法
  17. 网络教育统考计算机和英语作文,2020年9月网络教育统考大学英语B模拟冲刺题试卷5...
  18. 从字节码指令分析i=i++(i是long类型时)
  19. 2022中科院分区表弃用影响因子,多方官宣
  20. VS Code 修改字体为JetBrains Mono

热门文章

  1. 【Vegas原创】本地sys登录,ORA-01031: insufficient privileges的解决方法
  2. 初识WAP开发时..
  3. 利用逻辑回归进行简单的人群分类解决广告推荐问题
  4. html2canvas图片截图截不到图像的问题解决
  5. SpringCloud Gateway 测试问题解决
  6. Python 解决 :NameError: name ‘reload‘ is not defined 问题
  7. 如何使用C#中的WebClient将数据发布到特定URL
  8. 如何使用Sublime Text 2重新格式化HTML代码?
  9. 普通的旧CLR对象与数据传输对象
  10. 获取PHP中的完整URL