【问题标题】:User authorization in google talk with nodejs and node-xmpp谷歌谈话中的用户授权与 nodejs 和 node-xmpp
【发布时间】:2011-10-30 22:46:41
【问题描述】:

我正在使用 node-xmpp 在 node.js 中编写一个机器人。到目前为止,它非常简单,除了我在弄清楚 google Talk 如何处理它的用户授权时遇到问题(在处理请求与不在你名册上的人聊天时)。

我正在捕获所有通过的节并将它们记录到控制台,但没有来自请求授权的用户的数据。

任何关于我应该寻找什么的解释,或者这个事件是否通过 jabber 协议发生。

[附加] 我知道从技术上讲,当提出订阅请求时,会随订阅请求一起发送出席信息节。由于某种原因,我看不到这些使用 node-xmpp 的网络。此外,我需要找到一种方法来确定当我的机器人登录时哪些状态请求是“待定”的。我认为(不正确地)它们会在名册中列出并带有某种标志,但这是不正确的。

任何有关找出从这里去哪里的帮助都会很有用。

【问题讨论】:

    标签: node.js xmpp google-talk


    【解决方案1】:

    好的,我终于弄清楚了如何在发出订阅请求后获取它们。那里没有太多关于它的信息,所以我会整理一篇博客文章,但我觉得在这里回答它可能也很好。

    我发现如果我根据以下信息进行谷歌名册查询:

    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"/>
    

    然后是你花名册的其他“存在”节。重要的是要注意,除非您进行花名册查询,否则您的订阅“存在”节不会从服务器发送给您。我不确定为什么会这样,为什么它没有记录在某处,这超出了我的范围。不管怎样,至少我现在可以得到试图访问我的机器人的人的名单。

    【讨论】:

    【解决方案2】:

    注意:这不是我的知识领域,只是我的兴趣。我没有实际经验,只是进行了一些研究。这本来是一条评论,但是在对该主题进行更多搜索时,我想出了更多可能有帮助的东西。

    这是一个谷歌聊天室主页http://partychapp.appspot.com/你可以得到来源http://code.google.com/p/partychapp/

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

    http://code.google.com/p/node-xmpp-bosh/ 有一些关于此的代码,我没有做过,但这个话题很有趣。

    我希望您在撰写博客文章和/或项目并分享之后找到答案。我会感兴趣的。

    【讨论】:

    • 这看起来像是服务器端的信息。我或多或少试图确定如何使用 gtalk 作为客户端来查看待处理的状态订阅请求......
    • 用我发现的更多内容对其进行了更新。它可能无法直接解决订阅请求,但我希望它可以提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    相关资源
    最近更新 更多