一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Node.js發(fā)送微信 獲取fakeID

 quasiceo 2014-11-08

Node.js發(fā)送微信 獲取fakeID

2013-04-12 01:51 佚名 net 字號:T | T
一鍵收藏,隨時查看,分享好友!

上一章已經(jīng)講過如何用node.js發(fā)送微信消息了,,這一章為大家深入一點研究微信公眾平臺的機制。

AD:2014WOT全球軟件技術峰會北京站 課程視頻發(fā)布

首先我們要獲取這個發(fā)送微信人的信息,當你用控制臺查看微信的接口你會發(fā)現(xiàn),要有一個Fakeid,那么我們首要要獲取Fakeid,其他就好辦了.首先 我們先獲取登錄人的這個fakeid,防止后面還會用的.看了一下微信公眾平臺的所有api接口,,沒有發(fā)現(xiàn),那么我們只能去它的用戶頁面去拿,代碼如 下:

  1. getFakeId: (options, fn) -> 
  2.     request 
  3.       .get('http://mp.weixin.qq.com/cgi-bin/userinfopage?t=wxm-setting&lang=zh_CN#'
  4.       .set('Cookie', options.cookie) 
  5.       .end (res) -> 
  6.          //這里是你的fakeid 
  7.  //在拿到的結果里,實際上是一個頁面的所有數(shù)據(jù),那么我們只能用正則去匹配到所需的fakeid數(shù)據(jù),下面是完整的代碼: 
  8. getFakeId: (options, fn) -> 
  9.     request 
  10.       .get('http://mp.weixin.qq.com/cgi-bin/userinfopage?t=wxm-setting&lang=zh_CN#'
  11.       .set('Cookie', options.cookie) 
  12.       .end (res) -> 
  13.         fakeid = res.text.match(/FakeID : "(\d+)"/)[1] 
  14.         fn null, fakeid 

到了這一步,其實還沒有成功,因為我們還沒有拿到發(fā)送人的fakeid,不然怎么發(fā)微信消息給好友呢?于是,我們要去微信公眾平臺的用戶管理頁面拿到你所有的好友的fakeid,代碼如下:

  1. getFriendPage: (req, fn) -> 
  2.     @login (err, cookie)-> 
  3.       request 
  4.         .get('http://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&lang=zh_CN&pagesize=&pageidx=0&type=0&groupid=0'
  5.         .set('Cookie', cookie) 
  6.         .end (res) -> 
  7.        //在這里res.text已經(jīng)是用戶管理頁面的html代碼了,但是并不會出來,一番查找后,發(fā)現(xiàn)是因為它里面的js在我們這里用是有跨域的問題的,知道問題就好辦了,查找html它里面設置了document.domain:`document.domain = document.location.hostname.match(/[^\.]+\.com/)[0];`結果在控制臺的輸出是qq.com,看到這里,就證明我的判斷是沒有錯誤的.正則替換掉里面的hostname就ok了.完整代碼如下: 
  8. getFriendPage: (req, fn) -> 
  9.     @login (err, cookie)-> 
  10.       request 
  11.         .get('http://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&lang=zh_CN&pagesize=&pageidx=0&type=0&groupid=0'
  12.         .set('Cookie', cookie) 
  13.         .end (res) -> 
  14.           rs = res.text.replace(/document.location.hostname.match.*\[0\]/g, '"'+req.host+'"'
  15.           fn null, res.text 

在這里,大家已經(jīng)能拿到所有好友的fakeid了,但是不能用jsdom或者cheerio去拿,因為是整個頁面加載后才出現(xiàn)好友的html的,至于解決 方法我是用phantom.js解決的,具體代碼我就不貼了,因為要涉及到安裝什么的.因為研究微信公眾平臺時間也就幾天,如果有更好的方法獲取好友的 fakeid請在下面留言.

到這一步,在這里已經(jīng)拿到了fakeid了,我們可以去拿到這個微信好友的相關信息,在微信公眾平臺中,找到了如下接口,以下是代碼:

  1. getInfo: (fakeid, fn) -> 
  2.     @login (err, cookie) -> 
  3.       request 
  4.         .post(’http://mp.weixin.qq.com/cgi-bin/getcontactinfo?t=ajax-getcontactinfo&fakeid=‘+fakeid) 
  5.         .type('form'
  6.         .set('Cookie', cookie) 
  7.         .end (res) -> 
  8.           fn null, JSON.parse res.text 

調用代碼打印以下結果:

  1. FakeId: "xxxx"
  2. NickName: "岳蒙"
  3. ReMarkName: ""
  4. Username: "xxxx"
  5. Signature: ""
  6. Country: "中國"
  7. Province: "江西"
  8. City: "南昌"
  9. Sex: "1"
  10. GroupID: "0"
  11. Groups: [ 
  12. GroupId: "0"
  13. GroupName: "未分組" 
  14. }, 
  15. GroupId: "1"
  16. GroupName: "黑名單" 
  17. }, 
  18. GroupId: "2"
  19. GroupName: "星標組" 

當然群發(fā)的話也挺簡單的,我已經(jīng)做好了就不發(fā)了,大家可以貼出自己的代碼,互相討論下。

微信發(fā)送到這里已經(jīng)講完,大家有更好的玩法也歡迎分享。

【編輯推薦】

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    99免费人成看国产片| 国产午夜精品亚洲精品国产| 日韩一区二区三区在线日| 亚洲精品一区二区三区免| 一区二区福利在线视频| 欧美区一区二区在线观看 | 亚洲国产精品久久网午夜| 中文字幕一区二区熟女| 高清一区二区三区大伊香蕉| 中文字幕中文字幕一区二区| 国产毛片av一区二区三区小说| 国产精品欧美在线观看| 亚洲成人精品免费在线观看| 国产精品白丝久久av| 色偷偷偷拍视频在线观看| 日韩精品在线观看完整版| 少妇人妻中出中文字幕| 日本午夜一本久久久综合| 少妇激情在线免费观看| 午夜福利网午夜福利网| 日本一品道在线免费观看| 国产精品午夜性色视频| 国产级别精品一区二区视频 | 精品国产亚洲免费91| 欧美午夜视频免费观看| 中文字幕在线五月婷婷| 尹人大香蕉一级片免费看| av国产熟妇露脸在线观看| 国产视频在线一区二区| 亚洲在线观看福利视频| 亚洲精品中文字幕一二三| 国产免费一区二区不卡| 日韩无套内射免费精品| 欧美一区二区三区视频区| 日韩欧美中文字幕人妻| 噜噜中文字幕一区二区| 中文字幕91在线观看| 国产欧美韩日一区二区三区| 少妇成人精品一区二区| 日韩视频在线观看成人| 国产视频福利一区二区|