在网页中显示QQ在线状态并点击后发起对话,是很多门户网站常见的一个功能,这两天就碰到这样一个。原以为很简单,结果还是折腾了半天,虽然是个小问题,但也值得记录一下。

按以前的经验,网上有很多QQ在线代码,代码如下:

<a target=blank href=http://wpa.qq.com/msgrd?V=1&Uin=123691873&Site=www.ydxdaj.cn&Menu=yes>
<img border="0" SRC=http://wpa.qq.com/pa?p=1:123691873:1 alt="点击这里给我发消息">
</a>

按照这个来以后,点击后倒是可以发起会话,但是从wpa.qq.com上 获得的图片总是点亮的,看不出在线和离线的区别,看起来好像总是在线,记得很早以前这样用时,如果离线了,显示的图片是灰的,但现在不是了。找了很多跟这个相关的网站查看,包括qq114等,都是显示不出在线和离线的区别。也许腾讯停用了这样的功能,也许认为没必要区分在线和离线。

继续搜索,找打这样一种实现,可以获取离线或在线状态。代码如下:

<script>
var online= new Array();
</script> <!--检测是否在线-->
<script src="http://webpresence.qq.com/getonline?Type=1&qq号码:qq号码:qq号码:qq号码:qq号码:qq号码:"></script> .... <script>
$(".qq0").toggleClass("offline", online[0] == 0);
$(".qq1").toggleClass("offline", online[1] == 0);
......
</script>

其中,最关键的是

http://webpresence.qq.com/getonline?Type=1&qq号码:qq号码:qq号码:qq号码:qq号码:qq号码:

这个用来获取QQ在线状态,返回一段脚本,可以在浏览器地址栏测试查看结果:

返回的代码是一个数组,所以在前面定义了个online数组。根据返回数组的值确定相应QQ图标元素的CSS类,改变其外观,以区别在线和离线状态。

为了方便用户会话,避免弹出“只有添加好友后才能对话”的对话框,在QQ的个人资料设置“临时会话”项,取消选中“不接收任何临时会话消息”。

设置完这些,发现两个QQ中,有一个可以正确显示在线状态,但另一个总是显示离线,百思不得其解。解决方法很简单,登陆一下QQ推广网站http://shang.qq.com/,然后就可以了,可能这样就是启用了QQ通信组件,误打误撞解决了。

在QQ官方网站中,对这一块讲的比较乱,不够系统不够清楚。

2016/10/06补充:获取在线状态的代码,http://wpa.qq.com/pa?p=1:21117217:3

QQ在线状态的使用的更多相关文章

  1. ecshop下启用QQ在线服务,并能实时更新QQ在线状态

    按照 http://blog.csdn.net/zurich1979/article/details/9082201 可轻松实现在线客服, 但是使用后发现一个问题,那就是这种情况下在线客服不能根据QQ ...

  2. C#在Winform程序中显示QQ在线状态

    首先,引入必要的命名空间 using System.Windows.Forms;  using System.Net; 其次,在Form中拖入一个PictureBox控件,并设置其SizeMode为A ...

  3. 检测QQ在线状态脚本(20141022测试成功)

    import time,datetime import urllib2 def chk_qq(qqnum): chkurl = 'http://wpa.paipai.com/pa?p=1:'+`qqn ...

  4. 网站里加入QQ在线客服

    1.开启"QQ在线状态"服务  http://jingyan.baidu.com/article/b24f6c823425a586bfe5da1f.html http://www. ...

  5. 【情人节来一发】网站添加QQ客服功能

    今年的元宵节遇到情人节,挺不自量力的,呵呵,开篇给各位讲个段子,早上一美女同学在空间发说说道:“开工大吉 起床啦,卖元宵,卖玫瑰,卖避孕套啦-有木有一起去发财的小伙伴?Let’s go…”,对于此种长 ...

  6. 微信公众平台中添加qq在线聊天代码

    微信公众平台是个不错的媒体,可以和你的小伙伴们即时交流,但你的小伙伴们是用手机上的微信,打字自然就慢了:有人说用微信网页版,那个也不习惯,再说也不一定所有人都知道网页版微信.(2014.01.22更新 ...

  7. 在网页中插入MSN,Skype,QQ的方法

    MSN源码: <a href="msnim:chat?contact=come400@hotmail.com" target="blank">可以适 ...

  8. QQ,MSN,Skype在线客服代码

    QQ,MSN,Skype在线客服代码 在网站建设时,为了更好的实施网站的营销型,会用到QQ,MSN等在线交流,以便客户能够快捷方便的联系我们.在这里,提供QQ,MSN的在线客服代码给大家分享: 1.Q ...

  9. 不加好友实现QQ在线代码状态临时会话

    网友在介绍怎么样使用QQ来强制聊天,才想到以前一直遇到的QQ在线生成代码后,遇到的必须添加好友才能聊天的一个疑问. 公告:“QQ在线状态”V2.0正式发布,解决了QQ2009用户点击“在线状态”后须添 ...

随机推荐

  1. libevent源码深度剖析一

    libevent源码深度剖析一 ——序幕 张亮 1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libe ...

  2. C#连接Mysql数据库 MysqlHelper.cs文件

    mysql.data.dll下载_c#连接mysql必要插件mysql.data.dll是C#操作MYSQL的驱动文件,是c#连接mysql必要插件,使c#语言更简洁的操作mysql数据库.当你的电脑 ...

  3. 制作第三方SDK静态库、.framework(修正)

    静态库和动态库的存在形式 静态库: .a 和 .framework 动态库: .dylib 和 .framework 静态库和动态库的使用区别: 静态库:链接时,静态库会被完整地复制 到 可执行文件中 ...

  4. Luogu 4091 [HEOI2016/TJOI2016]求和

    BZOJ 4555 一道模板题. 第二类斯特林数有公式: $$S(n, m) = \frac{1}{m!}\sum_{i = 0}^{m}(-1)^i\binom{m}{i}(m - i)^n$$ 考 ...

  5. ifcfg-eth0文件参数PREFIX 和 NETMASK的配置不一致问题

    ifcfg-eth0文件参数PREFIX 和 NETMASK的配置不一致问题 摘自:https://blog.csdn.net/aikui0621/article/details/9148997 阅读 ...

  6. C#将DataTable数据导出到EXCEL的两种方法

    1.在非服务器控件的页面导出数据,需要借助一张temp空页面post回后台的数据. 前台:window.location.href = "../Temp.aspx"; 后台: tr ...

  7. keydown、input 和 keyup 事件

    keydown.keyup 属于键盘事件,input 属于文本事件. keydown:当用户按下键盘上的任意按键时触发,如果按住不放,会重复触发此事件. keyup:当用户释放键盘上的按键时触发. i ...

  8. android获取USB设备的名称

    1.注释内 .是三星设备可能不支持,需要更换的代码. 2.mUsbManager.是getSystemService(Context.USB_SERVICE)获的. 3. 从stackoverflow ...

  9. Activity和Fragment的生命周期

  10. 在有主分支和个人分支情况下的TFS使用方法

    从事.NET开发的资深童鞋一定都知道VS有自带的代码管理工具TFS(Team Foundation Server ),但是开发萌新可能就不太了解了,下面我就介绍一下这个工具以及它的一些常用操作. TF ...