Js判断QQ在线状态不准确的解决办法

  腾讯提供多个接口用于给普通商家用户进行在线咨询服务,对于各种流行的在线服务面板,使用的最多就是通过js跨域批量获取qq在线情况,如下图:

  使用了腾讯的批量判断QQ在线接口("http://webpresence.qq.com/getonline?Type=1&qq号:")最后的冒号一定要带上,代码大致如下:

 

<script type="text/javascript">
    var qqNum="";
    $(".qqImage").each(function(index,e){
        var temp=$(e).attr("id").split('_');
        qqNum+=temp[1]+":";
    });
    //动态创建javascript跨域获取QQ在线状态
    var online = new Array();
    var url="http://webpresence.qq.com/getonline?Type=1&"+qqNum;
    $.getScript(url)
        .done(function() {
              //scrpit加载完成后执行在线状态图片的改写
            $(".qqImage").each(function(index,e){
                var temp=$(e).attr("id").split('_');
                if(online[index]=="0"){
                    $(e).attr("src","images/offline.gif");
                    
                }
            });
         })
         .fail(function() {
              alert("客服暂时不可用");
        });    
</script>

 

  但是实验中发现,有部分号码即使在线,在面板中总是反映不在线,开始以为是代码的问题,但是直接通过接口看的确不在线,最好左思右想才感觉貌似腾讯不会这么不注重隐私(明面上),要不然谁都能看到对方的在线状态,即使不是好友,于是发现了开启QQ在线状态的页面,地址:http://shang.qq.com/widget/set.php

 

 

  登录后只要选择免费开通即可允许自己的状态被获取,于是问题解决!

posted @ 2014-05-22 17:04  无边华幕  阅读(1367)  评论(0编辑  收藏  举报