本篇的目的是讓你的QQ真正的上線:擠下你的PCQQ,和讓好友狀態欄顯示webqq在線html
擠下PCQQ
、WebQQ在線狀態
http://d.web2.qq.com/proxy.html?v=20130916001&callback=1&id=2
string.Format("r={{\"ptwebqq\":\"{0}\",\"clientid\":{1},\"psessionid\":\"\",\"status\":\"online\"}}", this.PtWebQQ, this.ClientID);
ptwebqq,是上一篇文章中從cookie中獲得的值,不記得能夠回去看看...web
clientid是一個8長度的數字,如:29528322
,做用是做爲用戶的惟一標識,可定義一個常量來表示,這個可隨意輸入ajax
retcode:0,表示成功json
注意:result屬性中的psessionid
和vfwebqq
是你本次登錄的QQ令牌,是登錄成功的依據,必定要保存下來瀏覽器
到這裏你會發現PCQQ通知你:你的QQ在別處登錄,你被迫下線了。有木有很高興呢(*゚∇゚)服務器
可是你立刻會發現,過半分鐘你的webqq就掉線啦゚(つд`゚),因此請往下看cookie
請求地址:http://d.web2.qq.com/channel/poll2
session
Referer:http://d.web2.qq.com/proxy.html?v=20130916001&callback=1&id=2
post
POST參數:r:{"ptwebqq":"XXXX","clientid":XXXXX,"psessionid":"XXXXXX","key":""}
this
以上參數在前次操做中都已經保存。
這是一個poll長輪詢
,瀏覽器ajax到服務器,timeout很長,當服務器有你的新消息以後,才把消息返回給你,或者等待好久就給你一個空消息。
服務器知道你還在試圖獲取新消息,就明白你還在線,即保持在線狀態
。
該次請求返回的消息,即爲好友消息
或者羣消息
我以前試着按照流程一步一步來,如今忽然想到,對返回消息的解析,依賴於好友列表和Q羣列表的獲取。
所以解析部分我暫時延後。
demo中的信息提示,請使用 this.Invoke((Action)(()=>xxx.Text=xxx));
來改一下
本步驟的demo,一步一步來作WebQQ機器人-(三)(登陸QQ並保持在線),更新於2015/2/2
能夠到該系列最後一篇文章查看是否可能有最新demo
轉載請保留本頁連接:http://www.cnblogs.com/lianmin/p/4232879.html
.