前言
公司办公软件用的是飞书套壳,本文主要介绍如何通过飞书机器人发送Jenkins
构建的进度和消息。
方法
前置条件
- 创建一个飞书机器人
- 搭建好
Jenkins
- 创建好构建任务
过程
- 根据飞书开发者平台的接口文档,用
shell
脚本封装一套调用飞书机器人发送消息接口的函数。 - 在需要的时候调用即可
Code
这里贴一下代码,如果需要自己使用的话请修改你的app_id
和app_secret
文章来源:https://www.toymoban.com/news/detail-654357.html
#!/bin/bash
###
# @Author: qile qile.ref@haier.com
# @Date: 2023-07-27 15:03:41
# @LastEditors: qile qile.ref@haier.com
# @LastEditTime: 2023-08-17 11:05:49
# @FilePath: /linux_build_system/test.sh
# @Description: 通过飞书机器人发送消息
###
# 获取飞书 token
function get_feishu_token() {
url='https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal'
headers='Content-Type: application/json; charset=utf-8'
payload='{"app_id": "cli_a226XXXXXXXXXXXX", "app_secret": "xXgQ4GmjEJx7BXXXXXXXXXXXXXXXXXXXXXX"}'
response=$(curl -s -X POST -H "$headers" -d "$payload" $url)
status_code=$(echo $response | jq -r '.code')
if [ $status_code -eq 0 ]; then
token=$(echo $response | jq -r '.tenant_access_token')
echo $token
else
msg=$(echo $response | jq -r '.msg')
echo "获取 token 失败: $msg"
exit 1
fi
}
# 获取用户 ID
function get_user_id() {
url='https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id'
token=$1
headers='Content-Type: application/json; charset=utf-8'
headers2="Authorization: Bearer $token"
payload="{\"emails\": [\"$2\"]}"
# echo $payload
response=$(curl -s -X POST -H "$headers" -H "$headers2" -d "$payload" $url)
status_code=$(echo $response | jq -r '.code')
if [ $status_code -eq 0 ]; then
user_id=$(echo $response | jq -r '.data.user_list[0].user_id')
echo $user_id
else
msg=$(echo $response | jq -r '.msg')
echo "获取用户ID失败: $msg"
exit 1
fi
}
# 发送消息
function send_message() {
url='https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id'
token=$1
headers='Content-Type: application/json; charset=utf-8'
headers2="Authorization: Bearer $token"
echo $2
response=$(curl -s -X POST -H "$headers" -H "$headers2" -d "$2" $url)
status_code=$(echo $response | jq -r '.code')
if [ $status_code -eq 0 ]; then
echo "消息发送成功"
else
msg=$(echo $response | jq -r '.msg')
echo "消息发送失败: $msg"
exit 1
fi
}
# 使用方法如下:
# 1. 获取飞书 token
token=$(get_feishu_token)
echo $token
# 2. 获取用户 ID
userId=$(get_user_id $token qil.ref@haier.com)
echo $userId
# 3. 发送消息
payload="{\"msg_type\":\"text\",\"receive_id\":\"$userId\",\"content\":\"{\\\"text\\\":\\\"您提交的构建已完成[点击下载](https://www.baidu.com)\\\"}\"}"
send_message $token $payload
总结
本文给出了详细的shell脚本代码,实现了将Jenkins构建消息发送到飞书的功能。欢迎白嫖!!!文章来源地址https://www.toymoban.com/news/detail-654357.html
到了这里,关于Jenkins自动发送飞书消息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!