您的位置:首页 > 编程语言 > Python开发

使用微信公众平台发送报警信息(Python版) 推荐

2014-05-22 16:44 435 查看
微信公众有两种,服务号和订阅号,服务号需要公司的执照和组织代码,申请很麻烦,所以我们申请一个订阅号即可。申请地址https://mp.weixin.qq.com/
网上有一个是利用node.js 写的,原理就是利用程序模拟用户登录微信公众平台后台,通过网页回复用户信息

import urllib
import urllib2
import random
import cookielib
import json
import urlparse
import sys

#构造登录数据
data={'username':'test@126.com',   #用户名
'pwd':'20659dd9b89eb83fe4371808daa5477e', #加密后的密码
'imgcode':'',
'f':'json'
}
#Referer 很重要,不然会报错的
header = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1'),('Referer','
#构造cookie
cj = cookielib.LWPCookieJar()
cookie_suppot = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cookie_suppot,urllib2.HTTPHandler)
opener.addheaders = header
urllib2.install_opener(opener)
#登录
request = urllib2.Request('https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN',urllib.urlencode(data))
conn=opener.open(request)
js = json.loads(conn.read())
#获取令牌,可以从登录后的返回结果中获取,PS:因为这个字符串不是固定的,所以需要获取
token = dict(urlparse.parse_qsl(js['redirect_url']))['token']
#发送消息的URL
url="https://mp.weixin.qq.com/cgi-bin/singlesend"
#构造发送信息的数据,使用POST方法
data1={'type':'1',
'content':'这是要发送的数据',
'tofakeid':'53763645',  #接受消息的订阅人,可以从页面中获取
'imgcode':'',
'token': token,         #令牌
'lang':'zh_CN',
'random':random.random(),   #小于1的随机数
'f':'json',
'ajax':'1',
't':'ajax-response',
}
#发送消息
qe = urllib2.Request(url,urllib.urlencode(data1))
res = opener.open(qe)
以上只是演示代码,大家可以自行更改配合nagios,还有个重要的问题就是微信有个48小时限制,意思就是:订阅号只能回复48小时内和订阅号互动的人
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  报警 微信