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