钉钉是阿里巴巴旗下一个专注于企业内部即时通讯、OA流程、审批、考勤和许多第三方接入平台的企业软件。利用其开放的API 可方便地定制公司企业的内部系统。
软件相关网址:钉钉官网

早在几个月前新版本钉钉更新后,就有了群聊机器人功能有,碍于工作太忙一直没时间去把玩一下。今天小小研究一下感觉非常方便也很容易。

应用场景

群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警提醒通过自定义机器人聚合到钉钉群,或者是跟我一样让ERP系统通过机器人发送相关数据到群中。

基本配置

创建机器人并获取token

必须创建或者选择现有的聊天群,然后在群会话界面点击机器人图标创建机器人

钉钉机器目前支持创建阿里去CODE、GITHUB机器人、Gitlab、Jira、Travis、自定义机器人,我们现在来测试的是自定义机器人

ding-robot-1

ding-robot-2
ding-robot-3

此处必须记下并复制webhook ,这个就是自定义机器人的接口地址,地址格式为

https://oapi.dingtalk.com/robot/send?access_token=8c3375c84f2341e23aa835ab4d0bca41766be430cbabf61cf00961b77005406d80

access_token为钉钉随机分配给机器人的访问令牌,每个群聊机器人都会有一个唯一的token,在接下来的消息发送中我们将会用到这个地址。

ding-robot-4

测试机器人

在上一步中得到了机器人的webhook 地址后我们就可以直接让机器人发送消息到群聊会话中了,在这里用简单粗暴的curl post请求到这个webhook 。

因我用的是macos ,系统自带了php 的curl 可以直接在终端下使用。也可在linux下直接使用以下代码。

请自行替换掉以下access_token 信息为上一步的webhook

curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
   -H 'Content-Type: application/json' \
   -d '
  {"msgtype": "text", 
    "text": {
        "content": "大家好,我是钢铁峡的机器人管家javis。我现在通过最简单的命令行工具curl 向群里的朋友们问好!"
     }
  }'

ding-talk-5

测试成功,命令中的curl 是一个可用于下载或提交数据用的类linux程序,经常开发Php的人一定很熟。
用curl 向机器人的webhook Post 提交一段json格式的数据(钉钉接口的规范要求)

json 数据格式要求如下(编写时注意去掉#号及以后内容)

{
    "msgtype": "text", #告诉webhook 这是一条text信息
    "text": {
        "content": "消息内容文本" #要显示的文本
    }, 
    "at": { #at 标签里面的内容可选,定义要@的群友
        "atMobiles": [
            "156xxxx8827", 
            "189xxxx8325"
        ], 
        "isAtAll": false #@所有人时:true,否则为:false
    }
}

除了支持text 类的信息外还支持 markdown类型消息、ActionCard类型消息、FreeCard类型消息,具体定义请查看钉钉开放中心文档,这里就抛个砖挖个坑,欢迎大家自己去跳坑研究。

问题总结

还总结个屁啊,哈哈,这个段落凑字数的。这么简单的原理大家试一下就成功。

已知问题: curl 这个命令行程序虽然说有windows 版本的程序,但是因为windows 命令行本身对json格式的处理支持很不好,如果要在windows 下使用curl 的话必须把双引号" 利用进行转义,相当于json里面的数据把"换成" ,虽然转义了但还是不支持中文消息,只能用英文的text消息。不然会一直提示系统繁忙或提交的数据有误。

所以想在windows 下用这个接口的话最好还是自己想办法程序实现吧。

所以我还是觉得linux 大法好,编程命令没烦恼。

转载请注明出处~

最后修改:2017 年 06 月 23 日 03 : 02 PM
如果觉得我的文章对你有用,请随意赞赏