我正在尝试从 a (a@gmail.com) 向 b(b@gmail.com) 发送一个订阅节,但 Google Talk XMPP 服务器没有转发该节(即 b 从未收到它) .
如果我使用 a@gmail.com 登录 Gmail 并邀请 b@gmail.com,b@gmail.com 会收到 IQ 节,它看起来像这样:
<presence xmlns='jabber:client' from='a@gmail.com' type='subscribe' to='b@gmail.com'><sub:invitation xmlns:sub='google:subscribe'><sub:body/></sub:invitation></presence>
[请注意,from 和 to 都只是用户名,而不是指定特定聊天资源的完整 JID,例如 a@gmail.com/ABC145D]
如果我尝试构建一个像 b 在通过 gmail 时收到的一样的存在节,我会从 GTalk XMPP 服务器收到一个“错误请求”错误:
If set, the 'from' attribute must be set to the user's full JID.
但是,如果我尝试 a) 指定完整的“from”JID,b) 将“from”完全从节中删除,或 c) 为“from”和“to”指定完整的 JID,它们都不起作用. GTalk XMPP 服务器不会将状态订阅请求从 a@gmail.com 传输到 b@gmail.com
最佳答案
我让它与以下形式的节一起工作,并在请求订阅之前将项目添加到花名册(好友列表)
<presence xmlns='jabber:client' from='a@gmail.com' type='subscribe' to='b@gmail.com'><sub:invitation xmlns:sub='google:subscribe'><sub:body/></sub:invitation></presence>
关于python - XMPP 订阅节 Google Talk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288846/