标签:time 自己 urllib2 只读 就会 end weixin server rms
打开页面 http://qydev.weixin.qq.com/try?t=experience (2016年注册的时候的连接)现在可能变了。进行注册操作,默认有90天的期限。
填写相关资料后你会收到一封邮件,进行体验账号激活,如下图:
注意,这里激活需要绑定在你的微信号上进行激活,激活后会有如下显示:
扫描完成后,进入登陆界面,这里的登陆信息就是你刚刚注册用的邮箱和密码,登入:
进入企业号后,需要进行相关配置:
选择通讯录,进入我的企业,添加子部门,我这里添加运维平台部。
添加部门后,进行成员添加,也就是后续会受到微信的成员了。
新增成员信息填写:
这里关机是身份验证信息部分,一定要准确。
填写成员后,需要进行要求关注,微信受到邀请链接后,即进行关注。
指定应用的管理员。点击设置-> 权限管理 -> 管理 -> 新建管理组 --> 添加管理员和权限。
有了前面的corpID和Sectet后,可以根据官方文档进行API测试。
http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5
我只读了建立连接、管理通讯录、发送消息。
这个token是一个有有效时间的密钥用于后续操作认证。
Https请求方式: GET
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect
正常情况下就会反馈一个json并得到access_token
可以进行很多测试,不过这里需要用到上面提到的corpID和Secret。
我这里只要发送报警短信,而且是文本格式的,所以就只需要进行发送消息测试就OK了。
然后就坐等微信受到消息吧。
编写报警脚本,和之前通过短信网关类似, #!/usr/local/bin/python #fileencoding:utf-8 import sys import urllib2 import time import json import requests reload(sys) sys.setdefaultencoding(‘utf-8‘) title = sys.argv[2] # 位置参数获取title 适用于zabbix content = sys.argv[3] # 位置参数获取content 适用于zabbix class Token(object): # 获取token def __init__(self, corpid, corpsecret): self.baseurl = ‘https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}‘.format( corpid, corpsecret) self.expire_time = sys.maxint def get_token(self): if self.expire_time > time.time(): request = urllib2.Request(self.baseurl) response = urllib2.urlopen(request) ret = response.read().strip() ret = json.loads(ret) if ‘errcode‘ in ret.keys(): print >> ret[‘errmsg‘], sys.stderr sys.exit(1) self.expire_time = time.time() + ret[‘expires_in‘] self.access_token = ret[‘access_token‘] return self.access_token def send_msg(title, content): # 发送消息 corpid = "88888888888888" # 填写自己应用的 corpsecret = "88888888888888888888888" # 填写自己应用的 qs_token = Token(corpid=corpid, corpsecret=corpsecret).get_token() url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}".format( qs_token) payload = { "touser": "@all", "msgtype": "text", "agentid": "4", "text": { "content": "{0}\n {1}".format(title, content) }, "safe": "0" } ret = requests.post(url, data=json.dumps(payload, ensure_ascii=False)) print ret.json() if __name__ == ‘__main__‘: # print title, content send_msg(title, content)
脚本命名为wexin_sendms.py,存放位置为zabbix报警目录,我这里为
/usr/lib/zabbix/alertscripts,具体设置在zabbix_server里进行设置。然后在zabbix的web界面进行配置。
测试微信报警接收,我这里停掉了线上一台puppetmaster的agnet服务,会报出一个5分钟不可达报警。
至此,微信告警测试完毕。
标签:time 自己 urllib2 只读 就会 end weixin server rms
原文地址:http://www.cnblogs.com/skyflask/p/7507938.html