ASP应用实例(腾讯内部讲义).doc_第1页
ASP应用实例(腾讯内部讲义).doc_第2页
ASP应用实例(腾讯内部讲义).doc_第3页
ASP应用实例(腾讯内部讲义).doc_第4页
ASP应用实例(腾讯内部讲义).doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

互动状态的实现指南 目录一、用户的状态获取- 3 -1、获取单个用户的状态:- 3 -2、获取多个用户的状态- 4 -二、点击用户的状态给用户发送消息- 5 -三、互动状态的接口参考- 9 -1、复杂接口(含有点击操作的)- 9 -2、简单接口(无点击操作)- 10 -1)返回在线状态图片- 10 -2)返回在线状态文字- 10 -四、ASP应用实例- 11 -1、ASP的应用环境- 11 -2、ASP实例详解- 11 -1)应用场景- 11 -2)技术方案- 12 -3)编码实现- 12 -A、访问数据库- 12 -B、编写网页元素- 13 -一、用户的状态获取在您开发的互动空间程序中,有时需要查询某个QQ用户或某批QQ用户的在线状态,腾讯公司为此提供了一个简便的接口,该接口是一个URL地址。根据获取单个和多个的不同,该URL地址有所不同,服务器返回的形式也有所不同。注意,该URL地址是大小写敏感的。 目前只返回在线和离线两种状态,注意,没有离开状态和隐身状态,当用户处于离开状态时,视同在线;当用户处于隐身状态时,视同离线状态。1、获取单个用户的状态:获取单个用户的状态的URL地址是:/getonline?Type=1&qq=3621277&resulttype=3后三项您可以随意定制,具体含义为:Type项:对于获取单个用户的情况,是保留项,可以填写任意值或者不要该项/getonline?qq=3621277&resulttype=3qq项:代表您要查询的QQ用户的号码;resulttype项:表示您希望获得的是QQ还是TM的状态,值为1代表返回的是TM类型的状态,值为3代表返回的是QQ类型的状态。把上述URL地址拷贝到IE的地址栏,回车,返回的页面显示如下值:document.write(img src=06/qq1_offline.gif border=0 )可见,这个查询的返回结果是一条显示某个图片的命令,06/qq1_offline.gif就是表示图片所在的位置以及文件名,不同的图片代表了不同的状态。 根据您填写的resulttype的值不同,用不同的图片代表不同的状态,具体如下表: 表1 状态一览表Resulttype的值图片文件名代表的含义1tm_offline.gifTM用户离线1tm_online.gifTM用户在线2rtx_offline.gifs-buddy用户离线2rtx_online.gifs-buddy用户在线3qq1_offline.gifQQ用户离线3qq1_online.gifQQ用户在线0或4qq_offline.gifQQ用户离线0或4qq_online.gifQQ用户在线下面是一段获取单个用户的在线状态的完整示例代码:示例网页这里显示的是QQ用户的状态,如果要更新,请刷新网页。TM:3621277 的在线状态 从上面的代码可以看出,获取状态的命令是这句话: 服务器返回命令是:document.write(img src=06/qq1_offline.gif border=0 )该命令执行的结果将会在获取状态的命令的位置绘制一个图片,以代表客户的在线状态2、获取多个用户的状态获取多个用户状态的URL地址是:/getonline?Type=1&154195734:240285461:14137743:其中Type=1是表示获取多个用户的状态,“Type=1&”后面紧跟着的是您要查询的用户的QQ号码,各个号码之间必须用冒号“:”隔开,并且必须以冒号“:”结尾。把上述URL地址拷贝到IE浏览器的地址栏中,回车,可以看到返回结果是:online0=0;online1=1;online2=0;您可以在网页中编写脚本来读取这些返回结果,编写时,您必须声明一个名为online的数组,用于读取你所要查询的QQ用户的状态。online数组中的序号0,1,2的值分别对应URL地址中的先后QQ号码,数组的值0表示离线,1表示在线。按照上面的例子则:online0=0表示154195734用户离线;online1=1表示240285461用户在线;online2=0表示14137743用户离线。根据这些返回值,您可以用图标显示他们的状态,这些图标都在06/ 地址下,具体的文件名以及他们所代表的图片及含义请参见“表1 状态一览表”。脚本示例代码:var online= new Array();if (online0=0) document.write(img SRC=06/qq_offline.gif);else document.write(img SRC=06/qq_online.gif); 二、点击用户的状态给用户发送消息在所显示的状态图标上,可以编写脚本,使鼠标点击该图标弹出给该用户发送消息的窗口,达到实时沟通的效果。前提是:您的机器必须安装了QQ或TM,如果您的QQ或TM还没启动,会提示您先启动,提示如下:例如,在网页上显示了以下图标:点击后,将出现以下会话窗口:在显示图标的标签的响应函数里的相应参数上填写如下参数:tencent:/Message/?Menu=yes&Exe=tm&Uin=259966199该参数大小写不敏感,其中Uin项表示要与之会话的QQ用户的号码;Menu及Exe项的含义如下:脚本示例:function SendMsg(sUrl) try /支持 var xmlhttp=new ActiveXObject(TimwpDll.TimwpCheck); this.location.href=sUrl; catch(e) /不支持 return false; 完整的示例代码如下:获取互动状态及实时发送消息示例function SendMsg(sUrl)try /支持var xmlhttp=new ActiveXObject(TimwpDll.TimwpCheck);this.location.href=sUrl; catch(e) /不支持alert(您没有安装QQ/TM,或者您的版本过旧,请到腾讯网站下载);window.location=;return false;var online= new Array(); K 购物熟悉香港赛马的请进 QQ:14137743 if (online0=0)document.write();elsedocument.write(); 6-11 11:57 K 体育6月12日天涯泡泡队比赛取消! TM:240285461 if (online1=0)document.write();else document.write(); 6-11 11:57 三、互动状态的接口参考目前webpresence系统有两种调用接口,一种是复杂接口,返回在线状态和调用qq(tm)的脚本;另外一种是简单接口,只返回在线状态。1、复杂接口(含有点击操作的)调用接口:/getonline?resulttype=0&qq=111118&UnionID =13010&Exe=QQ&Menu=YES&Version=1&WebSiteName=参数说明qq用户qq号码Exe见下表resulttype取的在线状态图片的类形 0:qq ; 1:tm ; 2:s-buddyWebSiteName网站名称UnionID见下表Menu见下表Version版本号:目前为1,默认值为1返回内容:document.write()命令参数名参数值说明公用参数MenuYES/NO当有多个QQ/TM启动时,是否出现UIN菜单进行选择没有此参数时不出现选择Menu,而是取最近运行的QQ/TMExeQQ/TM启动TM还是QQ没有此参数时启动最近运行的程序,如果没有运行,则启动QQMessageUnionID字符串网站联盟IDHostingID为NULL则为非合作站点UINQQ号码或企业号Url超链接用户资料页面,链接中应该含有Uin,没有此参数则显示本地资料。参数用加(单引号引起来),以区分“?=&”WebSiteName字符串网站名称,值请用(单引号引起来)2、简单接口(无点击操作)1)返回在线状态图片调用接口:/getonline?qq=11111&resulttype=0resulttype说明0QQ在线状态图片1TM在线状态图片2s-buddy在线状态图片返回结果:说明返回内容QQ在线document.write(img src=06/qq_online.gif border=0 )QQ不在线document.write(img src=06/qq_offline.gif border=0 )TM 在线document.write(img src=06/tm_online.gif border=0 )TM 不在线document.write(img src=06/tm_offline.gif border=0 )Sbuddy在线document.write(img src=06/rtx_online.gif border=0 )Sbuddy不在线document.write(img src=06/rtx_offline.gif border=0 )2)返回在线状态文字调用接口:/getonline?qq=11111返回结果:返回内容说明0不在线1在线四、ASP应用实例 在实际应用中,具体的企业信息,它所对应的QQ号码,以及它在网页上的表现形式等信息往往是保存在后台数据库里,根据用户的浏览方式、搜索条件等以不同的方式显示出来。于是,让网页“动”起来,实现动态显示,互动状态的表现形式将会更丰富多彩。应用ASP技术,是实现这一目的的典型应用之一。1、ASP的应用环境Microsoft Active Server Pages 简称ASP,是一套微软开发的服务器端脚本环境,通过 ASP 我们可以结合 HTML 网页、ASP 指令和 ActiveX元件建立动态、交互且高效的 WEB 服务器应用程序。ASP程序是在服务器端执行的,客户端通过浏览器发出请求,相应的ASP程序在服务端运行,并把运行结果返回给客户端。ASP程序文件是以“*.asp”为后缀的文件,它必须运行在Web服务器上。如果您的操作系统是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”中,然后浏览器地址栏键入:“http:/服务器IP地址/test.asp” 即可看到示例的结果。2、ASP实例详解1)应用场景 让我们设想一种场景,某个咨询网站保存了众多公司的信息,该网站面向用户提供这些公司基本信息和联系方式的查询。某个用户希望获得所有公司的列表,期待的结果如下:并且点击图标后,能弹出IM对话框,给这些公司的接口人留言或实时交流。2)技术方案 由于公司数量众多,且每个公司的信息也有一定的个性化,我们考虑存储在数据库中。在此,我们采用了Access数据库,使用ADO访问技术。公司信息存在表Company里,表的结构定义如下:字段名类型描述CompanyID数字公司序号CompanyName 文本 公司名称Exe文本使用的程序:QQ或TMQQ数字公司的联系QQ号码ImgType数字显示的图标类型,值的含义参见“表1 状态一览表” 表2 Company表结构 用户通过浏览器发出请求时,程序首先打开数据库,访问Company表,获取所有的公司信息,然后循环遍历记录集,提取所需要的信息,编写网页元素和脚本函数的参数,依次列出各公司的信息。网页编写完毕后,服务器会自动返回给浏览器并正确显示。3)编码实现A、访问数据库打开数据库:其中Server.MapPath(test.mdb)表示数据库的路径,注意不能是绝对路径,必须是虚拟目录。如果您把数据库直接放在wwwroot目录下,则路径就是test.mdb;如果您放在自建的虚拟目录abc下,则路径就是abctest.mdb。查询表:遍历记录集%Dim strTempstrTemp = Response.Write(strTemp) 输出网页元素%关闭数据库连接B、编写网页元素ASP程序的目的是动态生成一个完整的网页,用以返回给浏览器,故需要编写一个完整的网页源码。ASP语句部分是可以嵌在网页源码中的任何地方的。网页元素的输出有两种方式,一种是直接编写,另一种是使用ASP的Response方法。前者不需要嵌在ASP语句中,后者需要嵌在ASP语句中(如:%response.write(“测试”)%)。动态生成网页元素: % Dim strImgName Dim nIndex nIndex = 0 rs.movefirst While not rs.eof 遍历记录集 response.write() response.write(公司ID:) response.write(rs(CompanyID) response.write() response.write(公司名称:) response.write(rs(CompanyName) response.write() response.write(联系号码:) response.write(rs(QQ) response.write() response.write() response.write() strTemp = if (online strTemp = strTemp + CStr(nIndex) strTemp = strTemp + =0) 如果用户离线 resp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论