做投票的网站百度搜索关键词统计
前言
公司办公软件用的是飞书套壳,本文主要介绍如何通过飞书机器人发送Jenkins
构建的进度和消息。
方法
前置条件
- 创建一个飞书机器人
- 搭建好
Jenkins
- 创建好构建任务
过程
- 根据飞书开发者平台的接口文档,用
shell
脚本封装一套调用飞书机器人发送消息接口的函数。 - 在需要的时候调用即可
Code
这里贴一下代码,如果需要自己使用的话请修改你的app_id
和app_secret
#!/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 ]; thentoken=$(echo $response | jq -r '.tenant_access_token')echo $tokenelsemsg=$(echo $response | jq -r '.msg')echo "获取 token 失败: $msg"exit 1fi
}# 获取用户 ID
function get_user_id() {url='https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id'token=$1headers='Content-Type: application/json; charset=utf-8'headers2="Authorization: Bearer $token"payload="{\"emails\": [\"$2\"]}"# echo $payloadresponse=$(curl -s -X POST -H "$headers" -H "$headers2" -d "$payload" $url)status_code=$(echo $response | jq -r '.code')if [ $status_code -eq 0 ]; thenuser_id=$(echo $response | jq -r '.data.user_list[0].user_id')echo $user_idelsemsg=$(echo $response | jq -r '.msg')echo "获取用户ID失败: $msg"exit 1fi
}# 发送消息
function send_message() {url='https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id'token=$1headers='Content-Type: application/json; charset=utf-8'headers2="Authorization: Bearer $token"echo $2response=$(curl -s -X POST -H "$headers" -H "$headers2" -d "$2" $url)status_code=$(echo $response | jq -r '.code')if [ $status_code -eq 0 ]; thenecho "消息发送成功"elsemsg=$(echo $response | jq -r '.msg')echo "消息发送失败: $msg"exit 1fi
}# 使用方法如下:
# 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构建消息发送到飞书的功能。欢迎白嫖!!!