使用shell脚本,利用群webhook机器人发送消息到企业微信群中,脚本支持文本,图片,文件 三种消息类型
需要用到jq命令,jq是一个json解析工具:jq官网
#!/bin/bash
# Author:jinchuang [https://me.jinchuang.org/archives/986.html]
# 群webhook机器人发送消息到企业微信群
# webhook地址
url="https://qyapi.weixin.qq.com/cgi-bin/webhook"
# key
key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# header参数
header="'Content-Type:application/json'"
# 执行提示
function tips(){
if [ `jq -r .errcode` == "0" ];then echo -e "\033[32mok\033[0m";else echo -e "\033[31merror\033[0m";fi
}
# 上传临时素材
function file() {
# 发送的文件路径
upload_file="$f"
# post 参数
upload="-H 'Content-Type:multipart/form-data' -F 'filename=@$upload_file;type=application/octet-stream' $url/upload_media?key=$key&type=file"
# 获取临时素材id
media_id=`curl -s -X POST $upload|jq -r .media_id`
}
# 文本消息类型 [mentioned_list为@群成员id,为空则不@]
function send_text(){
textmsg='{"msgtype":"text","text":{"content":"'$t'","mentioned_list":[""]}}'
curl -s -H $header -d "$textmsg" "$url/send?key=$key"|tips
}
# 文件消息类型
function send_file(){
filemsg='{"msgtype":"file","file":{"media_id":"'$media_id'"}}'
curl -s -H $header -d "$filemsg" "$url/send?key=$key"|tips
}
# 图片消息类型
function send_img(){
md5=`md5sum $f|awk '{print $1}'`
base=`echo -n \`base64 $f\`|sed 's/[[:space:]]//g'`
imgmsg='{"msgtype":"image","image":{"base64":"'$base'","md5":"'$md5'"}}'
header="Content-Type:application/x-www-form-urlencoded"
curl -s -H $header -d "$imgmsg" "$url/send?key=$key"|tips
}
# 发送消息到群
echo "
1、文本消息
2、文件消息
3、图片消息
"
read -p "请输入要发送的消息类型:" x
case $x in
1)
read -p "输入文本内容:" t
send_text
;;
2)
read -p "输入文件路径:" f
file && send_file
;;
3)
read -p "输入图片路径:" f
send_img
;;
*)
echo "输入错误,执行结束"
;;
esac
执行过程结果图例
本文最后记录时间 2024-03-30
文章链接地址:https://me.jinchuang.org/archives/986.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
文章链接地址:https://me.jinchuang.org/archives/986.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
大神能否指导一下具体如何实现,刚好最近有这个需求,谢谢了。
把脚本里面的key换成你自己的就可以了