写在前面的话:
之前想弄这个功能来着,但是不巧,钉钉的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×tamp=XXX&sign=XXX
(3)方式三,IP地址(段)
设定后,只有来自IP地址范围内的请求才会被正常处理。支持两种设置方式:IP、IP段,暂不支持IPv6地址白名单,格式如下:
注意:安全设置的上述三种方式,需要至少设置其中一种,以进行安全保护。
校验不通过的消息将会发送失败,错误如下:
// 消息内容中不包含任何关键词 {
"errcode":, "errmsg":"keywords not in content" } // timestamp 无效 {
"errcode":, "errmsg":"invalid timestamp" } // 签名不匹配 {
"errcode":, "errmsg":"sign not match" } // IP地址不在白名单 {
"errcode":, "errmsg":"ip X.X.X.X not in whitelist" }
完成后页面如下:
到现在为止机器人就设置好了,接下来就是在codding中使用了。
项目中:
首先你有个项目(废话真多)并且得是项目管理员,找到项目设置>开发者选项>WebHook
新建WebHook
输入相关内容,url就是刚才生成的WebHook地址,监听事件根据自己需要勾选,最后 新建WebHook 就OK了。
接下来就可以看到自己添加的记录了,并且状态是成功发送(绿色的√)。此时,钉钉群将会收到一条测试推送。
下面是我测试机器人的消息:
应该似乎没啥问题了吧。
提醒一下下:如果在钉钉群重置了WebHook地址,一定要去项目中同步更新一下哦
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/84317.html