谷歌中的用户授权与nodejs和node-xmpp进行交谈

我正在使用node-xmpp在node.js中编写一个bot。 到目前为止,这是非常简单的,除非我在计算Google Talk如何处理用户授权(处理请求与不在名单上的人聊天)时遇到问题。

我正在捕捉所有经节并将其logging到控制台,但没有来自请求授权的用户的数据。

任何我应该寻找的解释,或者这个事件甚至发生在jabber协议上。

我知道,技术上,当一个订阅请求被做为一个存在节与订阅请求一起发送。 出于某种原因,我无法看到使用node-xmpp的线路。 另外,我需要找出一种方法来确定当我的机器人login时什么样的存在请求“正在等待”。我认为(无情地)他们会以某种forms被列入名单,但这是不正确的。

任何帮助找出从这里去哪里将是有益的。

好的,我终于弄清楚了如何在订阅请求后得到订阅请求。 在那里没有太多的信息,所以我会把一个博客文章,但我觉得在这里回答也可能是好的。

我发现,如果我根据以下信息做了一个谷歌名单查询:

http://code.google.com/apis/talk/jep_extensions/roster_attributes.html

示例节:

<iq from="username@gmail.com/D2D4E5A8" type="get" id="google-roster-1"><query xmlns="jabber:iq:roster" xmlns:gr="google:roster" gr:ext="2"/></iq> 

服务器将首先响应您的待定服务器订阅“在线”节

例如:

 <presence type="subscribe" from="pendinguser@gmail.com" to="namehere@gmail.com/D2D4E5A8" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"/> 

然后你的名册的其余部分的“存在”节。 请务必注意,您的订阅“状态”节不会从服务器发送给您,除非您进行名单查询。 我不知道为什么这是为什么它没有logging在我以外的地方。 无论如何,至less我可以获得试图访问我的机器人的人名单。

:这不是我的知识领域,只是我的兴趣所在。 我还没有实际的经验,只是一些研究。 这可能是一个评论,但是在这个话题上做了一些更多的研究,我想出了一些可能有用的东西。

这里有一个谷歌聊天聊天室的主页 http://partychapp.appspot.com/,你可以得&#x5230;源代码 http://code.google.com/p/partychapp/

这些链接来自http://xmpp.org/2010/02/xmpp-roundup-13-services/ ,其中有相当多的其他资源可能会有所帮助。

http://code.google.com/p/node-xmpp-bosh/有一些关于这个的代码,我没有做,但是这个话题很有趣&#x3002;

我希望如果你写了一篇博客文章或一个项目后find答案,并分享它。 这将是我感兴趣的。