现在很多网站都需要在线QQ的客服,腾讯网站http://wp.qq.com可以很容易设置QQ在网站的显示,以及在线状态。
但是毕竟腾讯提供的在线图标有限,可能网站需要有自己的QQ图标。当然腾讯也为我们想到了这些问题,他们为我们设计了js判断是否在线的代码。 详情:(http://wp.qq.com/help.html)。经我的测试不是很准确,特别是刚申请的QQ很难判断。
当然我们不一定要用js判断QQ是否在线,可以用webservice(http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx)很容易判断是否在线,但是也有缺点,就是一个ip可以判断的次数有限。
当然天无绝人之路,在http://wp.qq.com找到设置在线的代码
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=9097206&site=qq&menu=yes"><img border="0" src="/Upload/Images/2013071116/877424059DC0C81B.jpg" alt="点击这里给我发消息" title="点击这里给我发消息"></a>
分析可以得出/Upload/Images/2013071116/877424059DC0C81B.jpg是可以得到QQ时候在线返回不同的图标,经测试可以发现http://wpa.qq.com/pa?p=2:9097206:4 返回是否在线的图标的宽度不一致,则可以判断得出一下代 码
1 public static Boolean CheckQQOnline(string qq) { 2 WebRequest webRequest = WebRequest.Create("http://wpa.qq.com/pa?p=2:" + qq + ":4"); 3 WebResponse webResponse = webRequest.GetResponse(); 4 Bitmap myImage = new Bitmap(webResponse.GetResponseStream()); 5 if (myImage.Width == 23) 6 { 7 return true; 8 } 9 return false; 10 }