1、0 )可见,这个查询的返回结果是一条显示某个图片的命令,http:/219.133.40.106/qq1_offline.gif就是表示图片所在的位置以及文件名,不同的图片代表了不同的状态。根据您填写的resulttype的值不同,用不同的图片代表不同的状态,具体如下表: 表1 状态一览表Resulttype的值图片文件名代表的含义1tm_offline.gifTM用户离线tm_online.gifTM用户在线2rtx_offline.gifs-buddy用户离线rtx_online.gifs-buddy用户在线3qq1_offline.gifQQ用户离线qq1_online.gifQQ用户在
2、线0或4qq_offline.gifqq_online.gif下面是一段获取单个用户的在线状态的完整示例代码:htmlheadmeta http-equiv=Content-Type content=text/html; charset=gb2312title示例网页/headbody这里显示的是QQ用户的状态,如果要更新,请刷新网页。TM:3621277 的在线状态script language=javascript src=/219.133.38.16/getonline?type=1&qq=3621277&resulttype=1 /body/html从上面的代码可以看出,获取状态的命令
3、是这句话:Type=1&服务器返回命令是:该命令执行的结果将会在获取状态的命令的位置绘制一个图片,以代表客户的在线状态2、获取多个用户的状态获取多个用户状态的URL地址是:其中Type=1是表示获取多个用户的状态,“Type=1&”后面紧跟着的是您要查询的用户的QQ号码,各个号码之间必须用冒号“:”隔开,并且必须以冒号“:”结尾。把上述URL地址拷贝到IE浏览器的地址栏中,回车,可以看到返回结果是:online0=0;online1=1;online2=0;您可以在网页中编写脚本来读取这些返回结果,编写时,您必须声明一个名为online的数组,用于读取你所要查询的QQ用户的状态。online数
4、组中的序号0,1,2的值分别对应URL地址中的先后QQ号码,数组的值0表示离线,1表示在线。按照上面的例子则:online0=0表示154195734用户离线;online1=1表示240285461用户在线;online2=0表示14137743用户离线。根据这些返回值,您可以用图标显示他们的状态,这些图标都在http:/219.133.40.106/ 地址下,具体的文件名以及他们所代表的图片及含义请参见“表1 状态一览表”。脚本示例代码:var online= new Array();script if (online0=0) document.write(img SRC=/219.133
5、.40.106/qq_offline.gif); else/219.133.40.106/qq_online.gif/script 二、点击用户的状态给用户发送消息在所显示的状态图标上,可以编写脚本,使鼠标点击该图标弹出给该用户发送消息的窗口,达到实时沟通的效果。前提是:您的机器必须安装了QQ或TM,如果您的QQ或TM还没启动,会提示您先启动,提示如下:例如,在网页上显示了以下图标:点击后,将出现以下会话窗口:在显示图标的标签的响应函数里的相应参数上填写如下参数:tencent:/Message/?Menu=yes&Exe=tm&Uin=259966199该参数大小写不敏感,其中Uin项表示要
6、与之会话的QQ用户的号码;Menu及Exe项的含义如下:脚本示例:function SendMsg(sUrl) try /支持 var xmlhttp=new ActiveXObject(TimwpDll.TimwpCheckthis.location.href=sUrl;catch(e) /不支持 return false;img SRC=/219.133.40.106/qq_online.gif alt=点击发送消息给对方 onClick = SendMsg (Tencent:Menu=YES&Exe=QQ&Uin=14137743)完整的示例代码如下:HTMLHEADTITLE获取互动状
7、态及实时发送消息示例META http-equiv=Content-Type content=function SendMsg(sUrl) try /支持 var xmlhttp=new ActiveXObject( this.location.href=sUrl; catch(e) /不支持alert(您没有安装QQ/TM,或者您的版本过旧,请到腾讯网站下载window.location=; return false;script src=/HEADBODY bgColor=#ffffff leftMargin=0 topMargin=3CENTERTABLE height=20 cellS
8、pacing=0 width=640 border=0TBODYTR align=leftTD width=22FONT face=wingdings color=blue size=3K/TDTD width=380购物熟悉香港赛马的请进QQ:14137743td点击发送离线消息 onClick=SendMsg(Uin=154195734/SCRIPTTD width=886-11 11:57/TBODY/TABLETABLE height=20 cellSpacing=0 width=640 bgColor=#eeefff border=0体育6月12日天涯泡泡队比赛取消!24028546
9、1/CENTER/BODY/HTML三、互动状态的接口参考目前webpresence系统有两种调用接口,一种是复杂接口,返回在线状态和调用qq(tm)的脚本;另外一种是简单接口,只返回在线状态。1、复杂接口(含有点击操作的)调用接口: =13010&Version=1&WebSiteName=参数说明qq用户qq号码Exe见下表resulttype取的在线状态图片的类形 0:qq ; 1:tm ; 2:s-buddyWebSiteName网站名称UnionIDMenuVersion版本号:目前为1,默认值为1返回内容:/219.133.40.106/qq_offline.gifIsInstal
10、lQQ(Menu=Yes&UnionID=13010&Uin=11111,命令参数名参数值公用参数YES/NO当有多个QQ/TM启动时,是否出现UIN菜单进行选择没有此参数时不出现选择Menu,而是取最近运行的QQ/TMQQ/TM启动TM还是QQ没有此参数时启动最近运行的程序,如果没有运行,则启动QQMessage字符串网站联盟IDHostingID为NULL则为非合作站点UINQQ号码或企业号Url超链接用户资料页面,链接中应该含有Uin,没有此参数则显示本地资料。参数用加(单引号引起来),以区分“?=&”网站名称,值请用(单引号引起来)2、简单接口(无点击操作)1)返回在线状态图片调用接口
11、:QQ在线状态图片TM在线状态图片s-buddy在线状态图片返回结果:返回内容QQ在线/219.133.40.106/qq_online.gifQQ不在线TM 在线/219.133.40.106/tm_online.gifTM 不在线/219.133.40.106/tm_offline.gifSbuddy在线/219.133.40.106/rtx_online.gifSbuddy不在线/219.133.40.106/rtx_offline.gif2)返回在线状态文字不在线在线四、ASP应用实例 在实际应用中,具体的企业信息,它所对应的QQ号码,以及它在网页上的表现形式等信息往往是保存在后台数据
12、库里,根据用户的浏览方式、搜索条件等以不同的方式显示出来。于是,让网页“动”起来,实现动态显示,互动状态的表现形式将会更丰富多彩。应用ASP技术,是实现这一目的的典型应用之一。1、ASP的应用环境Microsoft Active Server Pages 简称ASP,是一套微软开发的服务器端脚本环境,通过 ASP 我们可以结合 HTML 网页、ASP 指令和 ActiveX元件建立动态、交互且高效的 WEB 服务器应用程序。ASP程序是在服务器端执行的,客户端通过浏览器发出请求,相应的ASP程序在服务端运行,并把运行结果返回给客户端。ASP程序文件是以“*.asp”为后缀的文件,它必须运行在W
13、eb服务器上。如果您的操作系统是Win95/98 则请安装 MS Personal Web Server,如果是Win NT或Win2000以上的,则请安装IIS。但安装好Web服务器后,会在系统盘下建立如下目录:Inetpubwwwroot,您只需把ASP程序文件(如文件名为test.asp)拷贝到这个目录下,然后在其他机器的浏览器地址栏键入:“http:/服务器IP地址/test.asp” 即可运行。 我们在“示例”目录下提供了一个ASP程序文件test.asp和一个数据库文件test.mdb,您只需把这两个文件拷贝到系统盘下的目录“Inetpubwwwroot”中,然后浏览器地址栏键入:
14、/服务器IP地址/test.asp” 即可看到示例的结果。2、ASP实例详解1)应用场景 让我们设想一种场景,某个咨询网站保存了众多公司的信息,该网站面向用户提供这些公司基本信息和联系方式的查询。某个用户希望获得所有公司的列表,期待的结果如下:并且点击图标后,能弹出IM对话框,给这些公司的接口人留言或实时交流。2)技术方案 由于公司数量众多,且每个公司的信息也有一定的个性化,我们考虑存储在数据库中。在此,我们采用了Access数据库,使用ADO访问技术。公司信息存在表Company里,表的结构定义如下:字段名类型描述CompanyID数字公司序号CompanyName 文本 公司名称文本使用的
15、程序:QQ或TMQQ公司的联系QQ号码ImgType显示的图标类型,值的含义参见“表1 状态一览表” 表2 Company表结构 用户通过浏览器发出请求时,程序首先打开数据库,访问Company表,获取所有的公司信息,然后循环遍历记录集,提取所需要的信息,编写网页元素和脚本函数的参数,依次列出各公司的信息。网页编写完毕后,服务器会自动返回给浏览器并正确显示。3)编码实现A、访问数据库打开数据库:% Set conn = Server.CreateObject(ADODB.Connection) 创建ADO数据库连接实例 conn.Open DRIVER=Microsoft Access Dri
16、ver (*.mdb); DBQ= & Server.MapPath(test.mdb) 打开ADO数据库连接%其中Server.MapPath()表示数据库的路径,注意不能是绝对路径,必须是虚拟目录。如果您把数据库直接放在wwwroot目录下,则路径就是test.mdb;如果您放在自建的虚拟目录abc下,则路径就是abctest.mdb。查询表:set rs=server.CreateObject(adodb.recordset) 创建ADO数据集实例sqlstr=select * from Company 查询SQL语句rs.open sqlstr,conn,1,1 打开一个查询记录集遍历
17、记录集Dim strTempstrTemp = 遍历记录集rs.movefirstWhile not rs.eofstrTemp = strTemp + CStr(rs(QQ) 指定字段,从当前记录中提取值strTemp = strTemp + :rs.movenextWendResponse.Write(strTemp) 输出网页元素关闭数据库连接rs.closeconn.close set rs=nothingset conn=nothingB、编写网页元素ASP程序的目的是动态生成一个完整的网页,用以返回给浏览器,故需要编写一个完整的网页源码。ASP语句部分是可以嵌在网页源码中的任何地方的。网页元素的输出有两种方式,一种是直接编写,另一种是使用ASP的Response方法。前者不需要嵌在ASP语句中,后者需要嵌在ASP语句中(如:%response.write(“测试”)%)。动态生成网页元素: Dim strImgName Dim nIndex nIndex = 0 rs.movefirst While not rs.eof 遍历记录集 response.write(TD width=100公司ID: response.write(rs(CompanyID)TD width=180公司名称:CompanyName联系号码: response.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1