现在网上流行的xiaoi机器人,如查天气或地图,都需要向你发出一个邀请才能使用其功能,一直不知道如何实现,前两天在网上找了一下资料,终于明白了点.
刚开始以为需要实现MSN插件或自己编写一个MSN,原来不需如此,要实现类似功能应该比较简单,只是针对共享的活动必须完全由自己实现。
这种功能应该叫MSNMessenger Activity,MS的站点上有一个MSNMessengerActivitySDK.zip 可以下载,里面讲述了具体的原理及实现。
大概步骤如下:
在安装MSN的目录下建立一个Msgrp2p.xml文件,在另一台被邀请的机器上也应该有这个文件,文件的示例内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<Entry>
<EntryID>7</EntryID>
<Error />
<Locale>en-us</Locale>
<Kids>1</Kids>
<Page>1</Page>
<Category>50</Category>
<Sequence>10</Sequence>
<Name>活动名称</Name>
<Description>活动描述</Description>
<URL>http://10.105.50.63/msndemo/</URL>
<IconURL />
<PassportSiteID>0</PassportSiteID>
<Type>App</Type>
<Height>500</Height>
<Width>500</Width>
<Location>side</Location>
<MinUsers>2</MinUsers>
<MaxUsers>2</MaxUsers>
<PassportSiteID>0</PassportSiteID>
<EnableIP>False</EnableIP>
<ActiveX>False</ActiveX>
<SendFile>False</SendFile>
<SendIM>False</SendIM>
<ReceiveIM>False</ReceiveIM>
<ReplaceIM>False</ReplaceIM>
<Windows>False</Windows>
<MaxPacketRate>120</MaxPacketRate>
<UserProperties>False</UserProperties>
<ClientVersion>6.0</ClientVersion>
<AppType>0</AppType>
<Hidden>false</Hidden>
</Entry>
Name表示显示的活动名称,即发起邀请时显示的名称;
URL表示这个活动所在的地址, 要注意的是这个地址必须两台机器都能访问.
其它具体的参数说明在SDK文档中有详细说明。
将上面的文件分别拷贝到两台机器的MSN目录之后,当这两台机器的MSN开始对话时,即可在对话框的"操作"菜单中看到新增了一项"启动 XXXXX"菜单, 点击此菜单之后, 另一台机器上将出现邀请的连接。点“接受”之后两台机器上将再现对应的URL网页。
上面所说的只是一个开始,如果需要两个MSN实现真正的交互, 还需要在访问的URL中获取两个MSN的相关信息, 然后根据每个人的操作, 实现互动功能。
但xiaoi机器人并未在我的MSN目录下拷贝Msgrp2p.xml,实现原理估计有点差别, 以后有机会再研究了。