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 发送消息资源

相关推荐
孤狼warrior2 分钟前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
予枫的编程笔记4 分钟前
【Linux进阶篇】从基础到实战:grep高亮、sed流编辑、awk分析,全场景覆盖
linux·sed·grep·awk·shell编程·文本处理三剑客·管道命令
Sheep Shaun4 分钟前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
Katecat9966312 分钟前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
Tfly__13 分钟前
在PX4 gazebo仿真中加入Mid360(最新)
linux·人工智能·自动驾驶·ros·无人机·px4·mid360
陈桴浮海14 分钟前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
生活很暖很治愈22 分钟前
Linux——环境变量PATH
linux·ubuntu
?re?ta?rd?ed?25 分钟前
linux中的调度策略
linux·运维·服务器
深圳市九鼎创展科技26 分钟前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
hweiyu0036 分钟前
Linux 命令:tr
linux·运维·服务器