写在前面的话:

之前想弄这个功能来着,但是不巧,钉钉的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 urllibtimestamp = 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地址,一定要去项目中同步更新一下哦

Jenkins:如何给coding的项目绑定钉钉机器人相关推荐

  1. Android项目Jenkins配置(自定义参数构建,构建完成后360加固+自动下载签名+多渠道配置,自动乐固加固+签名,自动上传蒲公英,自动上传OSS,自动发送钉钉消息,自动发送企业微信应用)

    Mac,window,unix,Linux等系统安装Jenkins服务就不说了... 直接上干货 编译后shell脚本参考 #推送钉钉群curl 'https://oapi.dingtalk.com/ ...

  2. Jenkins + 钉钉 + SpringBoot 极简入门,一键打包部署项目

    摘要: 原创出处 http://www.iocoder.cn/Jenkins/install/ 「芋道源码」欢迎转载,保留摘要,谢谢! 概述 快速入门 邮件通知 钉钉通知 彩蛋 推荐阅读如下 Jenk ...

  3. 【Jenkins】节点的配置与项目绑定

    一.环境准备 我的测试环境: 控制节点:main_node 受控节点:node1,node2 该示例是使用三台虚拟机搭建的测试环境,实体机搭建过程与虚拟机相同. 1.在控制节点上安装Jenkins J ...

  4. python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}

    相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...

  5. 4.Jenkins入门基础使用与邮箱钉钉微信消息通知集成配置与实践

    WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少. Tips : 本文章来源 Blog 站点或者 WeiyiGeek 公众账号 (技术交流.友链交换请邮我哟), 原文地址: 4.J ...

  6. 持续集成之 Jenkins 钉钉通知(八)

    一.前言 最近使用 Jenkins 进行自动化部署,但是发布署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于大家接受的设置,导致不能及时看到相关的发布内容.由于之前有用 Gitlab ...

  7. 钉钉项目任务怎么添加审批表单

    首先我们要通过检查项功能为任务添加检查,只有检查人员通过了才可以对任务进行完成操作.今天我们来操作一下怎么给任务添加审批表格结合的功能,只有绑定的审批表单流程审批通过或者撤销了才可以进行任务完成的操作 ...

  8. Jenkins配置钉钉通知

    VOL 337 21 2021-12 今天距2022年11天 这是ITester软件测试小栈第337次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  9. 1小时学会jenkins集成邮件/微信/钉钉通知

    01 邮件通知 邮件扩展插件安装Email Extension Plugin,如果已经安装了则不需要再装 该插件可以提供更详细的邮件发送设置 QQ邮箱准备 公司里会用企业邮箱作为发件人,相关信息找邮箱 ...

最新文章

  1. Jboot 2.0.1 发布,新增基于 Fescar 的分布式事务支持
  2. 压缩目录Linux常用的几种文件压缩解压方法
  3. Asp.net动态加载控件的一些问题
  4. 物联网和互联网的区别
  5. MAVEN自定义项目骨架
  6. c语言程序设计二级考试哪些题型,计算机二级考试题型及分值
  7. 别折腾安全软件了 你的手机也许还不配被黑客破解
  8. android 时间水印相机,水印相机时间打卡
  9. Java 敏感词过滤工具类及文本
  10. Python基础学习的一些记录
  11. 小米MIUI开发版应用闪退问题 Secure.ANDROID_ID must not be null
  12. 支持m3u8的php视频cms,分享一个苹果CMS可用P2P的M3U8解析代码
  13. 中兴和华为的面试经历
  14. 简单使用循环打印菱形小星星
  15. maya中英文对照_Maya菜单中英文对照(全)
  16. MySQL 自定义stuff函数
  17. OpenAI 宣布将对战 DOTA2 世界冠军 OG,最终决战!
  18. An attempt was made to call a method that does not exist. The attempt was ma
  19. 从零开始一起学slam--icp
  20. 2021年高考成绩查询梧州市,2021年梧州高中学校排名一览表,梧州比较好的高中学校排名...

热门文章

  1. 大数据常见面试题及答案
  2. Prometheus和Zabbix的对比
  3. 微信小程序开发笔记 基础篇②——微信小程序 手动查看和代码查看开发者ID(AppID)
  4. byte-buddy
  5. Microsoft Graph for Office 365 - 用例:Microsoft Teams相关的交互
  6. CodeCombat代码全记录(Python学习利器)--Kithgard地牢代码2
  7. 编译rtl8192eu出现 error: ‘IEEE80211_BAND_2GHZ’ undeclared here修改方案
  8. Oracle EBS系统短信认证登录开发
  9. 树莓派 2.8寸 ili9341 tft lcd spi 屏幕显示
  10. 基于ESP8266灯控