|
首先这是 @kover 提出的要求,并合作测试,现在为1.0正式版
首先你要注册企业微信,创建自己的公司,可以随便写,然后创建一个应用,这方面就不多说了,网上有教程
脚本内容
替换你的 #企业ID 后边的内容,上传到路由器/etc/storage/weixin.sh
赋予执行权限 控制台执行 chmod +x /etc/storage/weixin.sh
控制台或加到自带脚本里运行 /etc/storage/weixin.sh Mavyhui "要发送的内容" 即可发送,Mavyhui为发送到我的微信名,如果是@all就全体成员
- #!/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
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|