微信公眾有兩種,服務號和訂閱號,服務號需要公司的執照和組織程式碼,申請很麻煩,所以我們申請一個訂閱號即可。申請地址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小時內和訂閱號互動的人