Jenkins工具系列 —— 通过钉钉API 发送消息

文章目录


钉钉环境搭建

在jenkins安装钉钉插件以及小机器人,这部分内容可参考:插件 钉钉发送消息


使用钉钉API接口 发送消息

机器人安全设置使用自定义关键词

在配置机器人的安全设置使用自定义关键词,这里设置关键词为Mib。

请求方式:POST

请求地址:https://oapi.dingtalk.com/robot/send

如果自定义机器人的安全设置使用的是自定义关键词,调用本接口发送消息时,发送消息需要包含关键词(这里需要包含Mib),示例为:

bash 复制代码
#shell运行命令
curl 'https://oapi.dingtalk.com/robot/send?access_token=XXXXXX' -H 'Content-Type: application/json; charset=utf-8' -d '{"msgtype": "text", "text": {"content": "Mib提交的代码已部署\n"}, "at": {"atMobiles": [xxxx],"isAtAll": false}}'

说明:

1、"access_token=XXXXXX" 字段表示自定义机器人调用接口的凭证。在机器人设置里字段Webhook。

2、命令中也可以使用环境变量,比如 "at": {"atMobiles": $JOB_NAME,"isAtAll": false}}

机器人安全设置使用加签方式

请求方式:POST

请求地址:https://oapi.dingtalk.com/robot/send

如果自定义机器人的安全设置使用的是加签方式,调用本接口发送消息时,需要拼接timestamp和sign参数,示例为:

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

timestamp:开发者计算 sign 签名值时使用到的时间戳。

(开发者服务内当前系统时间戳,单位是毫秒,与请求调用时间误差不能超过1小时。)

sign:签名值。(密钥通过计算获得sign,密钥指的是机器人安全设置页面,加签一栏下面显示的SEC开头的字符串。)

将时间戳 timestamp 和密钥 secret 当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集)。

bash 复制代码
#!/bin/sh
#shell运行命令
#从dingding.py获取timestamp和sign值
a=10
b=10

output=$(python3 /home/git/dingding.py)

read var1 var2 <<< "$output"

echo "第一个返回值是: $var1"
echo "第二个返回值是: $var2"

if [ "$a" == "$b" ];then
    url=$(printf "https://oapi.dingtalk.com/robot/send?access_token=xxxx&timestamp=%s&sign=%s" $var1 $var2)
    curl $url -H 'Content-Type: application/json; charset=utf-8' -d '{"msgtype":"text", "text": {"content": "代码已部署\n"}, "at": {"atMobiles": ["master"],"isAtAll": false}}'
else
    echo "no eq"
fi

资料下载

【Jenkins工具系列 python文件】 通过钉钉API 发送消息资源

相关推荐
AI源码11 分钟前
基于 Python 的汽车市场数据分析与可视化平台
python·数据分析·汽车
会飞锦鲤11 分钟前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm
byte轻骑兵22 分钟前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙
叼烟扛炮40 分钟前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮1 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
AR-26710-1 小时前
Linux Day32——实操五类资源告急排查
linux·运维
starrysky8101 小时前
zipfile 中文乱码修复:把已知 GBK 旧 ZIP 解压到正确中文目录
python
用户91294046848421 小时前
Codex 从零到能交付(09):让 Codex 写有用的测试,而不是只测成功路径
python
2601_967987371 小时前
Debian如何配置Python调试工具
python·debian·pdb·调试工具·ipdb
MoRay1 小时前
放弃云端 Computer Use,我用 Python 手搓了一个带“物理防呆”的本地 GUI Agent 底座
python·github