XMPP连接人人网


seesmic-as3-xmppXMPP在ActionScript脚本上的一个实现。或许更加出名的是xiff这个框架,但是目前它并不支持TLS加密,所以需要要TLS支持的时候,更好用的是seesmic-as3-xmpp

人人网的IM工具校内通是基于XMPP协议进行通信的,根据网络上各路神仙的指示,使用基于XMPP框架的API可以很方便的更新一条状态。那么,在我使用桌面工具Twitter Air更新twitter的时候也可以同步更新到人人网,虽然人人网提供了REST API供应用程序调用,但是它们的验证机制明显需要花费更多的时间。

要想成功地连接到人人网,账号密码是必不可少的,人人网用户注册账号是Email地址,Email地址前的用户名无法保证唯一性,所以人人网用户都有一个额外的数字标识,就像QQ号一样,登陆之后可以从浏览器地址中得到该标识,例如http://www.renren.com/Home.do?id=9527这个用户的ID是9527。在进行XMPP连接前,要设置连接的JID, PASSWORD和SERVER三个值,RFC 3920中规定一个完整的JID应该是id@domain/resource这样一个形式,resource可以作为一个账户多处登陆的会话ID。按照这个规定,人人网用户9527的JID则是9527@talk.xiaonei.com。

下面在AIR中试着更新人人网的状态。打开Flash Builder新建一个AIR工程,将seesmic-as3-xmpp加入到编译路径,工程代码大致如下(MXML省略):

01import com.hurlant.crypto.tls.TLSConfig;
02import com.hurlant.crypto.tls.TLSEngine;
03import com.hurlant.crypto.tls.TLSEvent;
04import com.hurlant.crypto.tls.TLSSocket;
05import com.seesmic.as3.xmpp.XMPP;
06import com.seesmic.as3.xmpp.XMPPEvent;
07
08 varxmpp:XMPP;
09 privatefunctioninit():void{
10 xmpp=newXMPP("USER_ID@talk.xiaonei.com","USER_PASSWORD","talk.xiaonei.com");
11 xmpp.addEventListener(XMPPEvent.SESSION, handleSession,false,0,true);
12 xmpp.setupTLS(TLSEvent,TLSConfig,TLSEngine,TLSSocket);
13 xmpp.connect();
14}
15 privatefunctionhandleSession(e:XMPPEvent):void {
16 varstatus:String="a presence sent by AIR using XMPP protocol";
17 xmpp.sendPresence(status);
18}

设置好正确的ID和密码,编译运行,然后登陆人人网就会发现状态已经更新了。have fun!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值