最近写了些东东,来监控各种异常。传统的发邮件时效性不太好,更何况每天那么多邮件。
想到用微信的企业号来发消息。最重要一点,它是免费的。
首先要注册一个账号:
here
选择企业号
要填手机号,(微信需要绑定银行卡),扫描一下。
填写完公众号信息,就差不多看到曙光了。
创建一个应用,本人选择的是消息型。
设置管理员:
指定应用的管理员。点击设置-> 权限管理 -> 管理 -> 新建管理组 --> 添加管理员和权限。然后就会获得 corpid 和 sceret。记录下来,这个很重要。后面代码中用得到。
然后就是敲代码了。
#!/usr/bin/python
# coding=utf-8
import sys
import urllib2
import time
import json
import requests
__author__ = 'anderson'
reload(sys)
sys.setdefaultencoding('utf-8')
CORPID = "XXXX"
CORPSECRET = "XXXX"
BASEURL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format(CORPID, CORPSECRET)
URL = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s"
class Token(object):
# get token
def __init__(self):
self.expire_time = sys.maxint
def get_token(self):
if self.expire_time > time.time():
request = urllib2.Request(BASEURL)
response = urllib2.urlopen(request)
result_string = response.read().strip()
result_json = json.loads(result_string)
if 'errcode' in result_json.keys():
print >> result_json['errmsg'], sys.stderr
sys.exit(1)
self.expire_time = time.time() + result_json['expires_in']
self.access_token = result_json['access_token']
return self.access_token
def send_message(title, content):
team_token = Token().get_token()
print team_token
url = URL % (team_token)
wechat_json = {
"toparty": "1",
"msgtype": "text",
"agentid": "1",
"text": {
"content": "title:{0}\n content:{1}".format(title, content)
},
"safe": "0"
}
response = requests.post(url, data=json.dumps(wechat_json, ensure_ascii=False, encoding='utf8'))
print response.json()
if __name__ == '__main__':
send_message("test", "just test")
运行一下,就可以收到消息了:
点开,显示正确:
可以设置各种群组,接收消息的人。
结合 Jenkins, 灵活运用到测试中来。