之前社区里有人写过一篇调用微信接口实现测试监控,感觉用起来很方便的样子。今天研究了下钉钉的接口,发现比微信还方便。
支持文本(text)、连接(link)、markdown(markdown)三种消息类型。最喜欢的就是 markdown 类型。可以内嵌图片,不过图片需要自己找个地方存。
先下载一个钉钉 PC 版。官方主页https://www.dingtalk.com/,找到下载界面下载。创建一个帐号,完成登录。
点击客户端右上角的机器人管理 (2018 年 1 月更新)
选择最后的自定义机器人
随便写个名字,选择添加到的群组。之后通过 API 就可以把消息发到这个群组里面了。
确认之后,会给出一个 webhook 地址。这个复制下来,之后会用到。点击设置说明会有很详细的接口使用说明
结束之后,可以可以用 cURL 测试一下通知效果了。
# test markdown
$ ACCESS_TOKEN="your-access-token-here"
$ curl "https://oapi.dingtalk.com/robot/send?access_token=$ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"msgtype": "markdown", "markdown": {
"title": "Hello world",
"text": "**code**: echo hello world"
}}'
{"errcode":0,"errmsg":"ok"}
# test text
$ curl "https://oapi.dingtalk.com/robot/send?access_token=$ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text", "text": {
"content": "Hello world"
}}'
{"errcode":0,"errmsg":"ok"}
客户端几乎是立马就收到消息。
目前钉钉的 markdown 还只下面的部分格式,不过也算是够用了。
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
引用
> A man who stands for nothing will fall for anything.
文字加粗、斜体
**bold**
*italic*
链接
[this is a link](http://name.com)
图片
![](http://name.com/pic.jpg)
无序列表
- item1
- item2
有序列表
1. item1
2. item2
为了方便程序调用,下午的时候又将这些 API 封装成了 Go 的库 https://github.com/codeskyblue/dingrobot,里面自带了一个小程序,当程序异常退出的时候,发 DingDing 通知。