之前写了篇文章,介绍了获取网站访客QQ的一个方法(详情请见 使用腾讯接口轻松抓取网站访问者QQ),不幸的是,今天发现该接口已经被屏蔽无法使用。在此我为大家提供另一种方法,供大家参考!
首先,按照惯例,在具体实现前,讲一下实现原理。
当QQ用户登录了QQ的相关产品后(包括登录QQ空间,QQ的其它网页应用或者与之相关的第三方应用),都会在用户电脑上留下一个标记(一般是Cookie)来判断用户是否登录,虽然我们不能跨域访问其它域的Cookie(事实上,你的Cookie本身就保存了你的QQ号码),但是我们可以通过腾讯本身的API实现该功能。
下午在一个群聊起该事情的时候,有个朋友还很“义愤填膺”的质问我,说腾讯怎么可能做出这种泄露用户隐私的事情来呢?当然,腾讯本身不会专门出一个接口来让你抓取用户QQ,但是它有时无可避免的需要透露出用户的QQ号码(大多跟OAuth相关),所以才导致网络上这些“获取网站访客QQ”的业务横行。
核心代码如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>网站访客QQ抓取</title> </head> <body> <script type="text/javascript"> function gqq_callback(jsonstr) { alert("用户当前登录的QQ是:" + jsonstr.uin); } </script> <script type="text/javascript" src="http://dir.minigame.qq.com/cgi-bin/dir_fetch_qqhead?imgtype=3&DomainID=207&callback=scn_sendInfo&t=4585839"></script> </body> </html>
获取到用户的QQ,我们可以通过Ajax将QQ号码与当前页面地址(location.href)保存到数据库即可。
另外,要抓取访客QQ,必须是访客已经登录了腾讯相关业务后才可以获取,比如QQ空间。同时登录多个QQ者,以当前网页登录状态为准(用户可以同时登录多个QQ,但是一个浏览器只能登录同一个QQ空间)
最后,大家如果发该代码不能再使用,可以在评论里面留言给我,我会再次发布最新可用代码。
本文为原创文章,如果转载,请保留作者与出处!