码迷,mamicode.com
首页 > 微信 > 详细

zabbix使用微信报警(三)

时间:2017-07-19 14:45:08      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:技术   ken   url   自己   --   index.php   lan   ascii   sage   

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 微信企业号接口调试地址
 
一、首先申请企业公众号
 
二、获取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

 

zabbix使用微信报警(三)

标签:技术   ken   url   自己   --   index.php   lan   ascii   sage   

原文地址:http://www.cnblogs.com/lemon-le/p/7204944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!