python 发送微信公众号消息_使用微信公众平台发送报警信息(Python版)

微信公众有两种,服务号和订阅号,服务号需要公司的执照和组织代码,申请很麻烦,所以我们申请一个订阅号即可。申请地址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小时内和订阅号互动的人

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值