最近打开以前的webqq协议项目 结果发现貌似挂了。 重新抓包分析了下。这里贴一下接口 做个记录。
1、第一次登陆
方法:Get
地址: \“https://ssl.ptlogin2.qq.com/ptqrshow?appid=501004106&
e=0&l=M&s=5&d=72&v=4&t=0.\“ + 随机9位数 + 随机7位数;
地址返回结果是个二维码, 扫描二维码登陆。 这期间循环 2.验证登陆状态。
访问后记录Cookie后面要用到.
2、验证登陆状态
方法:POST
地址:https://ssl.ptlogin2.qq.com/ptqrlogin
参数:webqq_type=10&remember_uin=1&login2qq=1&aid=501004106&
u1=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&
ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&
dumy=&fp=loginerroralert&action=0-0-18099&
mibao_css=m_webqq&t=1&g=1&
js_type=0&js_ver=10135&login_sig=&pt_randsalt=0
返回结果为:ptuiCB(\‘66\‘,\‘0\‘,\‘\‘,\‘0\‘,\‘二维码未失效。(1891650816)\‘, \‘\‘);
ptuiCB(\‘67\‘,\‘0\‘,\‘\‘,\‘0\‘,\‘二维码认证中。(1891650816)\‘, \‘\‘);
ptuiCB(\‘0\‘,\‘0\‘,\‘http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=【QQ号码】&service=ptqrlogin&nodirect=0&
ptsigx=c4b277a9cbb5ec2e9dbcdf25645ac2b36e27aeffe18395a8c10316f65bdc116f
846fd8b5d4893696a58ce4a0663111fbded905eb3f27c1b309e6a3af49d989b6&
s_url=http%3A%2F%2Fw.qq.com%2Fproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&
f_url=&ptlang=2052&ptredirect=100&aid=501004106&daid=164&
j_later=0&low_login_hour=0®master=0&pt_login_type=3&
pt_aid=0&pt_aaid=16&pt_light=0&pt_3rd_aid=0\‘,\‘0\‘,\‘登录成功!\‘, \‘XX\‘);
所以这里检测开头第一个数字是0 就好了。 随后取出中间的网址并进行3、第一次登陆成功后返回回调地址。
3、第一次登陆成功后返回回调地址
方法:Get
地址:在上一个步骤返回的回调地址
直接访问一次即可,随后进入4、第二次登陆.
4、第二次登陆
方法:Post
地址:http://d1.web2.qq.com/channel/login2
参数:r={ {\“ptwebqq\“:\“[这里填之前cookie记录的 ptwebqq 的值]\“
,\“clientid\“:53999199,\“psessionid\“:\“\“,\“status\“:\“online\“}}
返回结果是个json 取其中psessionid
然后这里还需要获取vfwebqq值
地址: http://s.web2.qq.com/api/getvfwebqq
方法:post
参数:ptwebqq=[之前cookie的ptwebqq值]&clientid=[53999199]&psessionid=&t=[13位时间戳]
返回json中取值:vfwebqq
记录好这一部存下的值 psessionid 和 vfwebqq
到这一步 登陆就已经成功了。
之后就是获取好友 获取群组 获取消息 和 发送消息了。 先只搞到这 orz..