在微博上看到网友使用
PHP我确实是刚看,至于什么是curl,上php官网查,虽然不明白到底是什么意思,但照葫芦画瓢还是会的,共享万岁。因为是由程序来自动提交登录的,所有JS在程序里面就没什么用处了,而且要找个流量小的,太大程序下载的速度就会非常慢,最后定在使用3gqq登录方式。
跟着CURL的参数来,找个提交登录的3gqq的登陆URL,http://pt5.3g.qq.com/,因为网页格式是wap格式的,所以只有使用chrome或者opera才能访问,否则都会出现下载提示,IE8也不能访问,IE9不知道会不会改善。查看源码,会看到就几个输入框和几个隐藏的输入框,相信看到这里的你知道是神马个东西了。
$qqno='你的QQ';
$qqpw='QQ密码';
$cookie = dirname(__FILE__).'/cookie.txt';
$post = array(
'login_url' => 'http://pt.3g.qq.com/s?sid=ATAll43N7ZULRQ5V8zdfojol&aid=nLogin',
'q_from' => '',
'loginTitle' => 'login',
'bid' => '0',
'qq' => $qqno,
'pwd' => $qqpw,
'loginType' => '1',
'loginsubmit' => 'login',
);
$curl = curl_init('http://pt.3g.qq.com/handleLogin?aid=nLoginHandle&sid=ATAll43N7ZULRQ5V8zdfojol');
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); // ?Cookie
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
$result = curl_exec($curl);
curl_close($curl);
?>
我在测试的时候主要是因为cookie没有设置,因为总是想着这不是在客户端提交,记录Cookie也没有什么用,就删除了Cookie参数,试了好多次之后加上Cookie就成功了。
另外,
其实使用SID登录也是一种模拟QQ登录的方式,SID码来自于登录后的URL中,每次登录都会分配唯一的SID码,这也是3gqq全站登录的方式,因为要考虑有的手机不支持Cookie(这里突然想到腾讯要是使用session,会是什么样的状况),但又要实现全站登录的需求。
OK,通过SID码登录就不多说了,相信聪明的你肯定能想到。 😆
因为这个程序一个多星期之前就写了,就进行了一些拓展,感兴趣的可以看看我写的这个实例:QQ挂机宝(好吧,我承认这个名字取得由点鸟,但我确实没想到啥名,凑合着叫叫吧)。这个实例主要重点放在了功能实现上,所有什么安全措施,什么用户体验,什么程序运行效率都没去弄,,所以…你懂的,如果你发现功能上不对的地方记得给我留言。
如果你有更好的思路或者更深的想法,欢迎交流,例如用来发QQ消息,发微博什么的,虽然上面2项都测试成功了。