https://qy.weixin.qq.com/ 企业号注册
http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5 微信调用接口说明
http://qydev.weixin.qq.com/debug 微信企业号接口调试地址
http://qydev.weixin.qq.com/debug 微信企业号接口调试地址
一、首先申请企业公众号
二、获取AccessToken
使用微信,应该最重要的就是这个了,下面是如何获取他,在他的接口文档中,有说明:
首先测试一下,看通过接口调试工具,如何获取Access_Token: 根据自己的corpid和corpsecret获取AccessToken
会返回一个结果:
那么如何通过命令行获取呢,那就是根据上面文档的get请求的地址: 执行这条命令就可以获得
/usr/bin/curl -s -G https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx |awk -F\":‘{print $4}‘|awk -F\" ‘{print $2}‘
获得这个值,然后就可以通过他发送消息了,发送接口说明:把刚刚上面获得的AccessToken传给下面这个红色框框的ACCESS_TOKEN地方
三、编写脚本,实现微信的发送
部门ID,应用ID,CorpID,Secret,然后根据CorpID和Secret获得access_token,然后根据微信提供的接口文档进行获取就可以了
#!/bin/bash #set -x CorpID="xxxxx" Secret="xxxxx" GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret" Token=$(/usr/bin/curl -s -G $GURL |awk -F\":‘{print $4}‘|awk -F\" ‘{print $2}‘) echo $Token PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token" UserID=$1 PartyID=2 agentid=1 Msg=$(echo "$@"|cut -d" "-f1-)
message(){ printf ‘{\n‘ printf ‘\t"touser": "‘"$UserID"\"",\n" printf ‘\t"toparty": "‘"$PartyID"\"",\n" printf ‘\t"msgtype": "text",\n‘ printf ‘\t"agentid": "‘"$agentid"\"",\n" printf ‘\t"text": {\n‘ printf ‘\t\t"content": "‘"$Msg"\""\n" printf ‘\t},\n‘ printf ‘\t"safe":"0"\n‘ printf ‘}\n‘ } /usr/bin/curl --data-ascii "$(message $1 $2 $3)" $PURL
这个脚本可以先sh webcat.sh 001 aa bb 先测试一下,看是否成功
这里的message是有格式说明的:
他的发送消息格式一定要按照他的文档要求来
touser:成员ID列表,多个用|分开
toparty:部门ID列表
msgtype:消息的类型text(支持消息型应用跟主页型应用)
agentid:企业应用ID号
content:消息内容
safe:是否保密消息,0表示否,1表示是,默认为0
通俗的话理解:
1)通过get请求地址,根据自己的corid和secret获取Access Token
2)把获取的Access Token传递给post地址的ACCESS_TOKEN参数
3)然后使用规定的文本格式通过curl 发送出去
四:zabbix设置,和添加邮件一样,有几点注意事项
1:添加报警媒介类型,这里的参数是要传递到脚本里去的
2:用户添加微信报警 收件人写
3:添加动作,在操作细节的时候选择微信报警
获得的结果:
若发送不成功,首先可以通过zabbix的动作日志看他是否成功
若这里显示的是发送成功,然后又没有收到微信消息,那么很有可能是微信的Access Token的问题,我的办法是重新获取secret