如何给coding的项目绑定钉钉机器人

写在前面的话:
之前想弄这个功能来着,但是不巧,钉钉的Webhook正好在维护,就搁置了。于是每次合并代码之类的,我都会对着老大喊一嗓子,同意一下呗。今天喊了一嗓子后,老大说:你快弄下那个机器人提醒吧。哈哈,可能受不了我突然的一嗓子~弄好之后趁着热乎劲,顺便记录一下过程,方便以后再用,老话说–好记性不如烂笔头。

钉钉上:

首先你得有个群,并且是群管理员,然后点击 群助手>添加机器人
在这里插入图片描述
选择自定义>添加
在这里插入图片描述
输入机器人名字,设置头像,完成安全设置(下面介绍),勾选,点击完成。

华丽丽的分割线开始:以下内容粘贴自钉钉开发文档


安全设置

安全设置目前有3种方式:
(1)方式一,自定义关键词

最多可以设置10个关键词,消息中至少包含其中1个关键词才可以发送成功。

例如:添加了一个自定义关键词:监控报警

则这个机器人所发送的消息,必须包含 监控报警 这个词,才能发送成功。

(2)方式二,加签

第一步,把timestamp+"\n"+密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集)。
在这里插入图片描述
签名计算代码示例(Java)

Long timestamp = System.currentTimeMillis();
String stringToSign = timestamp + "\n" + secret;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
return URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");

签名计算代码示例(Python)

#python 2.7
import time
import hmac
import hashlib
import base64
import urllib

timestamp = long(round(time.time() * 1000))
secret = 'this is secret'
secret_enc = bytes(secret).encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = bytes(string_to_sign).encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.quote_plus(base64.b64encode(hmac_code))
print(timestamp)
print(sign)

第二步,把 timestamp和第一步得到的签名值拼接到URL中。
在这里插入图片描述

https://oapi.dingtalk.com/robot/send?access_token=XXXXXX&timestamp=XXX&sign=XXX

(3)方式三,IP地址(段)

设定后,只有来自IP地址范围内的请求才会被正常处理。支持两种设置方式:IP、IP段,暂不支持IPv6地址白名单,格式如下:
在这里插入图片描述
注意:安全设置的上述三种方式,需要至少设置其中一种,以进行安全保护。
校验不通过的消息将会发送失败,错误如下:

// 消息内容中不包含任何关键词
{
  "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"
}

华丽丽的分割线结束。
多说句废话,我选择了最简单的第一种,第二种我没太看懂(小菜鸡),第三种有点麻烦的样子。

点击完成后页面如下:
在这里插入图片描述
到现在为止机器人就设置好了,接下来就是在codding中使用了。
项目中:
首先你有个项目(废话真多)并且得是项目管理员,找到项目设置>开发者选项>WebHook
在这里插入图片描述
点击 新建WebHook
在这里插入图片描述
输入相关内容,url就是刚才生成的WebHook地址,监听事件根据自己需要勾选,最后点击 新建WebHook 就OK了。
在这里插入图片描述
接下来就可以看到自己添加的记录了,并且状态是成功发送(绿色的√)。此时,钉钉群将会收到一条测试推送。
在这里插入图片描述
下面是我测试机器人的消息:
在这里插入图片描述
应该似乎没啥问题了吧。
提醒一下下:如果在钉钉群重置了WebHook地址,一定要去项目中同步更新一下哦

发布了56 篇原创文章 · 获赞 32 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/hry1243916844/article/details/103418319