在钉钉,机器人是独立存在的一个应用类型,可以开箱即用,也可以进行二次开发,无需和微应用或者群等场景进行强制绑定。

对于开发者,钉钉机器人是全局唯一的应用,即无论是在单聊场景中还是群聊场景中,都可以用来推送应用的通知和用来对用户进行对话式服务,机器人ID都可以是唯一的。这意味着开发者既可以选择仅创建一个机器人,而后将其放在各个应用场景下使用,也可以创建多个机器人,然后分别部署在不同场景下。

钉钉机器人

官方文档 https://open.dingtalk.com/document/orgapp/custom-robot-access

创建一个钉钉机器人

打开官网网址,进入你的企业,如果没有权限就自己创建一个企业测试;

https://open-dev.dingtalk.com/fe/app#/corp/app

我用的是自己创建一个企业,之后钉钉回自动拉一个群;

钉钉机器人_推送

选择创建一个 自定义机器人

钉钉机器人_开发者_02

webhook: 用于发送消息的链接,可以post get 请求 , 先复制

安全设置: https://open.dingtalk.com/document/robots/customize-robot-security-settings?spm=ding_open_doc.document.0.0.1d1c5e59nOUSIM#topic-2101465

使用机器人

钉钉机器人_推送_03

当前自定义机器人支持文本 (text)链接 (link)markdown(markdown)ActionCardFeedCard消息类型

类型以及请求参数: https://open.dingtalk.com/document/robots/custom-robot-access

我这里使用的是 postman 请求机器人,当然也可以使用 node java python 等,官网有说明以及demo

钉钉机器人_钉钉_04

不出意外的话 你的钉钉群将会收到一条推送 如果出现问题的 可以查看下面 cerrode

钉钉机器人_推送_05

常见错误类型

// 消息内容中不包含任何关键词
{
  "errcode":310000,
  "errmsg":"keywords not in content"
}

// timestamp 无效
{
  "errcode":310000,
  "errmsg":"invalid timestamp"
}

// 签名不匹配
{
  "errcode":310000,
  "errmsg":"sign not match"
}

// IP地址不在白名单
{
  "errcode":310000,
  "errmsg":"ip X.X.X.X not in whitelist"
}

我可以干什么

使用node 搭建一个后台每天定时推送 天气,邮件等信息 ...

other

github 机器人

钉钉机器人_推送_06

官方文档: https://open.dingtalk.com/document/isvapp/github-robot-1