自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用公眾平臺模擬登錄發(fā)送微信消息給指定用戶

移動開發(fā)
本文使用Node.js做發(fā)送微信接口,模擬登錄公眾平臺以發(fā)送信息給用戶??吹轿⑿殴娖脚_,開始有點興奮,能做個機器人玩玩,隨后用Node.js寫了一個,覺得其實這沒什么意思,很快就覺得膩了,于是有了做發(fā)送微信接口的想法。

看到微信公眾平臺,開始有點興奮,能做個機器人玩玩,隨后用Node.js寫了一個,覺得其實這沒什么意思,很快就覺得膩了,于是有了做發(fā)送微信接口的想法。首先要做的我們就要模擬公眾平臺的登陸。對于微信的這些lib,當然不能直接寫在routes里面,那要怎么辦呢?沒錯,就要封裝起來,方便復用。

你可以打開控制臺看到公眾平臺的登錄請求,還有所需的參數(shù),其中密碼它是用它本身的md5進行加密的,那么我們需要做的只是將它copy過來放在一個 helpers/wx/md5.js文件里就可以直接用了,以下是微信公眾平臺解析后格式化的js提交代碼:

  1. submit: function() { 
  2.       if (!n()) return
  3.         var e = d.getVal(); 
  4.          t.post("/cgi-bin/login?lang=zh_CN", { 
  5.             username: e.account, 
  6.             pwd1: t.md5(e.password.substr(0, 15)), 
  7.             pwd2: t.md5(e.password), 
  8.             imgcode: f.data("isHide") ? "": e.verify, 
  9.             register: e.isRegister, 
  10.             f: "json" 
  11.          }, 

我們要建立一個login的方法:

  1. request = require 'superagent' 
  2. require __basename + '/helpers/wx/md5' 
  3. config = require __basename + '/config/config' 
  4. module.exports =  
  5.   login: (fn) -> 
  6.     wx_usr = config.wx.user 
  7.     wx_pwd = md5 config.wx.pwd.substr(0, 16) 
  8.     request 
  9.       .post('http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN'
  10.       .type('form'
  11.       .send( 
  12.         username: wx_usr 
  13.         pwd: wx_pwd 
  14.         imgcode : '' 
  15.         f : 'json' 
  16.         register : 0 
  17.       ) 
  18.       .end (res) -> 
  19.           //在這里你已經(jīng)成功獲取cookie了 

但是經(jīng)過分析我想你會發(fā)現(xiàn),這里的cookie其實并非你想要的cookie,因為它包含一些沒用的信息Path=,我們設置cookie的時候,事實上 是不能用直接設置這樣的cookie,應該是一個cookie里面不應該有其他的東西,而分號后面的path應該將它去掉,這里是返回的結果:

  1. "mp_user=xxxxxx; Path=/"
  2. "mp_sid=NlJ2Tm5hb1NXRGxOU3V1MzF2a25tSFVWRHhTNkhwek1nMXlEOVZzMnZMUG1lZ29nSkdENGt3WlgwUjBJZnhydndYNkZSd0ZsaHRHdEozSHBIa3QwT3FWTmdXc3RxVFhYUDBCR3dnWkxIRWVvRlZObG15UC83SzU1aEZPZWpocU8=; Path=/" 

以下是完整的login代碼:

  1. login: (fn) -> 
  2.     wx_usr = config.wx.user 
  3.     wx_pwd = md5 config.wx.pwd 
  4.     request 
  5.       .post('http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN'
  6.       .type('form'
  7.       .send( 
  8.         username: wx_usr 
  9.         pwd1: wx_pwd 
  10.         pwd2: wx_pwd 
  11.         imgcode : '' 
  12.         f : 'json' 
  13.       ) 
  14.       .end (res) -> 
  15.         cookie = '' 
  16.         for rs in res.header['set-cookie'
  17.           cookie += rs.replace(/Path=\//g, '') 
  18.         fn null, cookie 

在這里,我們已經(jīng)完成登錄的操作了,接下來,我們要做的是進行發(fā)送,在發(fā)送的時候,要把這個cookie設置在請求的地址中,接下來的代碼比較簡單:

  1. sender: (options, fn) -> 
  2.     msg = options.msg 
  3.     fakeid = options.fakeid 
  4.  
  5.     unless msg 
  6.       fn error: 'missing msg' 
  7.       return 
  8.  
  9.     unless fakeid 
  10.       fn error: 'missing fakeid' 
  11.       return 
  12.  
  13.     psotParams = 
  14.       type: 1 
  15.       content: msg 
  16.       error: false 
  17.       tofakeid : fakeid 
  18.       ajax : 1 
  19.  
  20.     request 
  21.       .post('http://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN'
  22.       .type('form'
  23.       .send(psotParams) 
  24.       .set('Cookie', options.cookie) 
  25.       .end (res) -> 
  26.         fn null, JSON.parse res.text 

這里,我們已經(jīng)能完全發(fā)送了,因為返回的結果是一個json,所要最好先JSON.parse一下,里面的成功判斷大家可以加上,返回的接口有個叫ret的參數(shù),0為發(fā)送成功。

  1. ret: "0"
  2. msg: "ok" 

 

責任編輯:徐川 來源: 51CTO整理
相關推薦

2013-04-08 16:19:40

微信微信公眾平臺圖文消息

2013-04-10 18:29:09

微信公眾平臺接口開發(fā)

2013-04-10 18:48:56

微信公眾平臺技巧

2013-05-24 09:35:46

Java實現(xiàn)

2013-04-15 16:56:48

微信公眾平臺Android開發(fā)

2013-11-13 07:19:19

2013-07-22 16:20:07

微信故障

2013-04-08 15:13:39

微信公眾平臺

2013-07-22 11:01:24

微信公眾系統(tǒng)故障

2013-07-22 09:24:33

微信系統(tǒng)推送

2013-05-22 10:58:09

微信公眾賬號微信

2013-04-10 18:45:52

微信公眾平臺接口開發(fā)

2013-04-08 15:56:49

2024-12-19 10:00:00

Python發(fā)送消息編程

2013-04-10 13:07:40

微信公眾平臺Web App

2013-04-10 18:07:08

微信公眾平臺接口開發(fā)

2013-04-09 17:23:57

微信微信公眾平臺歡迎信息

2013-04-10 16:15:40

微信公眾平臺接口開發(fā)

2013-04-10 18:19:40

微信公眾平臺接口開發(fā)

2014-09-24 11:32:21

微信企業(yè)號開發(fā)
點贊
收藏

51CTO技術棧公眾號