2022







2022






鸿

靳闯博客 记录是一种习惯 、分享是一种态度
  • 波浪
  • 波浪
  • 波浪
  • 波浪
shell脚本利用webhook机器人-发送群消息-到企业微信
发表于: | 分类: 技术积累 | 标签: Linux Shell 企业微信接口 webhook

使用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

执行过程结果图例

webhook.png


本站文章除注明转载/出处外,均为本站原生内容,转载前请注明出处 | 文章链接地址:https://me.jinchuang.org/archives/986.html

如果这篇文章帮助到了你,我感到十分荣幸!

记录 🐾 分享 👣 进步 💪 变强


📑 留言内容 ↴

  1. 大神能否指导一下具体如何实现,刚好最近有这个需求,谢谢了。

    1. 把脚本里面的key换成你自己的就可以了

📬 评论留言

顶部