python - XMPP 订阅节 Google Talk

标签 python xmpp google-talk

我正在尝试从 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/

相关文章:

mysql - 从普通聊天迁移到 ejabberd 聊天

android - 使用 XMPP over GTalk 模拟推送通知

python - 我怎样才能提高这个算法寻找最高股价的时间复杂度?

python - PyQt : Checkbox in QTableWidget

xmpp - amqp 或 xmpp 用于实时在线游戏

open-source - 简单的聊天机器人项目

xmpp - 使用 strope.js 和旁遮普语将 Google Talk 集成到网络应用程序

python - 在 python 中保存 csv 文件,以日期时间作为文件名

Python正则表达式匹配给定字符串中的多个模式

javascript - 使用 converse.js 自动登录