Nic*_*erd 4 xmpp google-talk node.js
我正在使用node-xmpp在node.js中编写一个bot.到目前为止,它是非常直接的,除了我有一个问题,弄清楚谷歌如何处理它的用户授权(当处理请求与不在你的名册上的人聊天).
我正在捕捉所有通过并将它们记录到控制台的节,但是没有来自请求授权的用户的数据.
对我应该寻找什么的解释,或者这个事件是否发生在jabber协议上.
[附后]我知道技术上,当订阅请求发出时,会在订阅请求中发送在线节.由于某种原因,我无法使用node-xmpp看到它们通过线路传输.此外,我需要找到一种方法来确定当我的机器人登录时哪些存在请求"待定".我(无论如何)认为他们将被列入名单中的某种标志,但这不正确.
找到从这里去哪里的任何帮助都是有用的.
好的,我终于想出了如何在订阅后获得订阅请求.关于它的信息不多,所以我会把一个博客文章放在一起,但我觉得在这里回答它可能也很好.
我发现如果我根据以下信息进行了谷歌名册查询:
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>
Run Code Online (Sandbox Code Playgroud)
服务器将首先响应您的待处理服务器订阅"在线"节
例如:
<presence type="subscribe" from="pendinguser@gmail.com" to="namehere@gmail.com/D2D4E5A8" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"/>
Run Code Online (Sandbox Code Playgroud)
然后你的名册的其余部分"存在"节.重要的是要注意,除非您进行名册查询,否则您的订阅"状态"节不会从服务器发送给您.我不确定为什么会这样,以及为什么它没有记录在某处超出我的范围.无论如何,至少我可以获得现在试图访问我的机器人的人员列表.
| 归档时间: |
|
| 查看次数: |
1308 次 |
| 最近记录: |