靳闯博客 记录是一种习惯 、分享是一种态度
  • 波浪
  • 波浪
  • 波浪
  • 波浪
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

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


📬 评论留言 ↴

icon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.png2018new_aini_org.png2018new_baobao_thumb.png2018new_erha_org.png2018new_kuxiao_thumb.png2018new_yun_thumb.png2018new_hufen_thumb.png2018new_gui_org.png2018new_xiaoerbuyu_org.png2018new_heixian_thumb.png2018new_wabi_thumb.png2018new_tianping_thumb.png

TOP