WDK集成步骤

取自 WDKdoc

跳转到: 导航, 搜索

目录

[编辑] WDK集成相关的文件

与WDK集成相关的文件包括三类:

  • WDK服务器提供的资源文件

包括javascript脚本文件和swf格式的flash文件,嵌入在合作网站前台页面中。

imfunction.js:提供与Presence Flash之间的交互功能,收到消息后弹出聊天窗口或提示窗口;
promptwindow.js:收到消息后,如果窗口焦点不在当前页面,则闪动页面标题,提醒用户;
flashobject.js:Flash播放器版本检测,动态创建Flash对象脚本;
openimwindow.js:收到消息后,打开弹出聊窗;
impresence.swf:在线状态保持Flash;
imbuddylist.swf:好友列表Flash;
imwebchat.swf:一对一在线聊天Flash;

Flash与脚本文件下载地址配置在imconfig.inc.php文件中。

  • 放置在合作方服务器完全服务于WDK功能的后台页面文件
imconfig.inc.php:WDK参数配置文件,配置参数包括网站的WDK系统ID号,保持用户在线状态的页面文件地址等;
imwebchat.php:一对一在线聊天页面;
imbuddylist.php:好友列表页面;
imxml.php:为WDK服务器查询论坛信息提供服务,包括验证用户Session是否有效,获取用户个人信息,获取用户好友列表等;
imkeeponline.php:为保持打开网站页面的用户在网站内始终处于在线状态,保证网站上显示的用户在线离线状态更准确,用户访问的前台页面会定时访问该文件,刷新用户在网站上的在线状态。


  • 合作网站修改自己的前台页面,显示WDK功能入口

在论坛的特定地方,显示"跟我聊天"按钮,如论坛的帖子查看页面,个人信息查看页面。如果发贴人、恢复人在线,就在附近显示“与我聊天”; 好友列表入口(暂未开放)。

[编辑] 集成步骤

[编辑] 编写imxml接口文件

参见demo中imxml.php文件,该服务器动态页面用于提供数据查询接口,供Flash通信服务器调用,获取合作网站的信息与功能配置、用户个人信息、用户好友信息等,保证WDK中的数据与网站相一致。 该页面根据不同的查询请求返回相应的xml格式数据,分别用不同的响应函数来实现,合作方直接修改这些函数实现即可。该文件包括的响应函数以及返回数据内容如下定义:

  • getSiteProfile:获取网站信息及配置数据。

输入参数:无 输出xml数据:

xml节点 含义
havebuddysystem True或false True表示网站有自己的好友系统,WDK将完全使用网站的好友数据;false表示网站没有自己的好友系统,WDK将会为网站提供好友服务,数据存储在WDK服务器上
forbiddenwordslist 逗号隔开的字符串序列过滤的聊天字段列表,用户的聊天信息中将会被过滤掉
smileys smiley子节点序列 聊天表情列表
smiley name、image、code子节点 聊天表情信息
smiley 的name子节点 字符串 表情名称
smiley 的image子节点 url 表情图片地址
smiley 的code子节点 字符串 表情替换码

[编辑] 申请集成

发送申请邮件至趣通网络,请填写以下申请内容:

  • 网站URL;
  • 公司名称;
  • 联系方式;
  • imxml文件URL。

经核实后,我方会回复邮件,通知以下内容:

  • 分配给合作方的网站ID;

如demo中将获得的配置参数放在配置文件inconfig.inc.php中,另外配置文件中还包括三个flash的链接地址。

[编辑] 集成WebPrecence

在用户登录后的页面都应集成WebPrecence Flash,用来跟踪用户的上线下线状态,以及收到其他用户发送的即时消息时,弹出聊天窗口,即与WebChat功能的接口。 集成步骤如demo.php文件所示:

  • 定义全局变量

包括网站id,口令,Flash通信服务器地址,WDK flash所在URL等:

   require_once './imconfig.inc.php';
  • 获取当前访问页面用户的信息

包括用户id,用户名或昵称,seession id三个参数。demo中填写了测试数据,合作网站应该从数据库或缓存中获得实际数据。

 $uid = '1381';
 $username = 'testuser1';
 $sessionid = 'justfortest';
  • 嵌入Presence flash以及相关脚本

调用javascript的runPresence函数,传入一下参数:presence flash地址、本网站id、当前用户id、当前用户名、当前用户session id、BuddyList flash通信服务器地址、聊天页面地址。聊天页面地址是当该用户收到其他用户发送的即使消息时,弹出的实时聊天页面,该页面的实现参考webchat flash集成。 demo中

 <script src="imfunction.js" type="text/javascript"></script>
 <script src="openimwindow.js" type="text/javascript"></script>
 <script language="javascript" type="text/javascript">
 <?php  
 echo "im_runPresence('$im_presenceflash_url', '$im_siteid', '$uid', ' $username', '$sessionid', '$im_buddylistserver', 'imwebchat.php');";  
 ?>
 </script>

[编辑] 集成WebChat

WebChat用于两个用户间实时对话,demo中的实时聊天列表页面是imwebchat.php文件。该页面文件要求能够接受和处理两个Get方法传递的参数:destuid和destnick,分别是该会话中对方的用户id和昵称;

  • 在imwebchat.php文件中引入配置的全局参数:

如demo中代码:

   require_once './imconfig.inc.php';
  • 获取Get方式提交的参数

如demo中代码: $destuid = isset($_GET['destuid']) ? $_GET['destuid'] : null; $destnick = isset($_GET['destnick']) ? $_GET['destnick'] : null;

  • 获取当前访问页面用户的信息:

包括用户id,用户名或昵称,seession id三个参数。demo中填写了测试数据,合作网站应该从数据库或缓存中获得实际数据。 $uid = '1381'; $username = 'testuser1'; $sessionid = 'justfortest';

  • 配置WebChat Flash的传递参数

传递参数的方式通过URL参数方式,参数包括sessionid、userid、username、siteid、buddyserver、destuid、destnick、chatserver以及mytitle参数。mytitle未聊天Flash窗口的标题。 如demo中代码如下: $flashurl= $im_buddyflash_url."?sessionid=".$sessionid."&userid=".$uid."&username=".$username."&siteid=".$im_siteid."&buddyserver=".urlencode($im_buddylistserver); $flashurl= $flashurl."&destuid=".$destuid."&destnick=".$destnick."&chatserver=".urlencode($im_webchatserver); $titleparam = iconv("GBK", "UTF-8", "与".$destnick."对话"); $flashurl = $flashurl."&mytitle=".urlencode($titleparam);

  • 嵌入BuddyList Flash

引用imfunction.js,调用createFlash函数,传递参数包括: demo中代码如下:

 <script src="imfunction.js" type="text/javascript"></script>
 <script type="text/javascript">
     flashobj = createFlash("imwebchat", "webchat_flash", "<?php echo($flashurl); ?>", 300, 400, 8);

</script>

  • 在网站页面内合适位置加入打开WebChat的链接

如demo中demo.php文件代码如下,引用了openimwindow.js中的openWebChat函数,openWebChat函数传入两个参数:对方用户id和对方用户昵称,demo中填写了测试用数据,合作网站应填写实际所需数据。 <a href="" onclick="javascript: im_openWebChat('1382', 'testuser2'); return false;">与testuser2聊天</a> 如果实时聊天页面的名称或路径不同于demo,请修改openimwindow.js中的openWebChat函数即可。

个人工具