企业微信机器人推送mysql_使用企业微信来推送路由器信息,同步至个人微信,代替方糖方案...

#!/bin/bash

# shell调用企业微信发送消息命令

# ./weixin.sh ${人员} "消息"

# 例:

# ./weixin.sh [url=home.php?mod=space&uid=19415]@all[/url] "hello!"

# ./weixin.sh maYun "hello!"

# 注:

# 消息中可以使用"\n"表示换行;

# 消息中不可以使用空格;

# 微信接口参数

# 根据自己申请的企业微信上接口参数调整;

# 设置环境变量

export PATH='/etc/storage/bin:/tmp/script:/etc/storage/script:/opt/usr/sbin:/opt/usr/bin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'

export LD_LIBRARY_PATH=/lib:/opt/lib

expireTime=7200

dbFile="/etc/storage/db.json"

# 企业ID

corpid='ID'

# 应用凭证密钥corpsecret

appsecret='appsecret'

# 应用ID

agentid=1000002

timenow=`date +%Y-%m-%d//%H:%M:%S`

if [ ! -f "$dbFile" ];then

touch "$dbFile"

fi

# 获取token

req_time=`jq '.req_time' $dbFile`

current_time=$(date +%s)

refresh=false

if [ ! -n "$req_time" ];then

refresh=true

else

if [ $((current_time-req_time)) -gt $expireTime ];then

refresh=true

fi

fi

if $refresh ;then

# 获取accesstoken

token=$(curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${appsecret}" | jq -r '.access_token')

if [ -z "$token" ];then

logger -t "【企业微信】" "没有获取access_token,请检查参数值和jq安装状态,并手动删除缓存文件 rm /etc/storage/db.json"

exit

else

logger -t "【企业微信】" "获取access_token值:$token"

## 保存文件

echo "" > $dbFile

echo -e "{" > $dbFile

echo -e "\t"access_token":"$token"," >> $dbFile

echo -e "\t"req_time":$current_time" >> $dbFile

echo -e "}" >> $dbFile

fi

fi

# 发送消息

accesstoken=`jq -r '.access_token' $dbFile`

msgsend_url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accesstoken}"

json_params="{"touser":"${1}","msgtype":"text","agentid":"${agentid}","text":{"content":"${2}\n时间${timenow}"},"safe":"0"}"

# curl -X POST ${msgsend_url} -d ${json_params}

req_msg=$(curl -X POST ${msgsend_url} -d ${json_params} | jq -r '.errcode')

if [ "$req_msg" = "0" ];then

logger -t "【企业微信】" "推送成功,返回代码:$req_msg"

else

logger -t "【企业微信】" "推送失败,返回代码:$req_msg"

fi

# 如果access_token不合法,重新获取

if [ "$req_msg" = "40014" ];then

logger -t "【企业微信】" "错误:不合法的access_token,重新获取"

token=$(curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${appsecret}" | jq -r '.access_token')

if [ -z "$token" ];then

logger -t "【企业微信】" "第二次没有获取access_token,请检查参数值和jq安装状态,并手动删除缓存文件 rm /etc/storage/db.json"

exit

else

logger -t "【企业微信】" "第二次获取access_token值:$token"

## 保存文件

echo "" > $dbFile

echo -e "{" > $dbFile

echo -e "\t"access_token":"$token"," >> $dbFile

echo -e "\t"req_time":$current_time" >> $dbFile

echo -e "}" >> $dbFile

fi

# 发送消息

accesstoken=`jq -r '.access_token' $dbFile`

msgsend_url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${accesstoken}"

json_params="{"touser":"${1}","msgtype":"text","agentid":"${agentid}","text":{"content":"${2}\n时间${timenow}"},"safe":"0"}"

# curl -X POST ${msgsend_url} -d ${json_params}

req_msg=$(curl -X POST ${msgsend_url} -d ${json_params} | jq -r '.errcode')

if [ "$req_msg" = "0" ];then

logger -t "【企业微信】" "第二次推送成功,返回代码:$req_msg"

else

logger -t "【企业微信】" "第二次推送失败,返回代码:$req_msg"

fi

fi


版权声明:本文为weixin_39769091原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。