gpt4 book ai didi

python - XMPP 聊天 : accessing contacts' status messages with xmppPy's Roster

转载 作者:行者123 更新时间:2023-11-28 22:07:17 24 4
gpt4 key购买 nike

我正在尝试使用 xmpppy 访问我的 google talk 联系人的自定义状态消息。我做到了这一点:

import xmpp
import sys

userID = 'myname@gmail.com'
password = 'mypassword'
ressource = 'Script'

jid = xmpp.protocol.JID(userID)
jabber = xmpp.Client(jid.getDomain(), debug=[])

connection = jabber.connect(('talk.google.com',5222))
auth = jabber.auth(jid.getNode(), password, ressource)

jabber.sendInitPresence(requestRoster=1)
myroster = jabber.getRoster()

花名册对象 myroster 现在包含我的联系人,但不包含自定义状态消息。

myroster.getStatus('oneofmyfriends@gmail.com')

不返回

查看“原始名册”,我可以看到资源字典是空的

u'oneofmyfriends@googlemail.com': {'ask': None, 'resources': {}, 'name': u'Some Name', 'groups': [], 'subscription': u'both'}

奇怪的是我今天已经让它工作了,但我的代码可能略有不同,但我无法弄清楚我到底做了什么不同......

如有任何帮助,我们将不胜感激!

干杯,

马丁

最佳答案

这是我发现的一件事,当我第一次开始使用 xmpp 时,我并不清楚这一点。交友是双向的。

使用存在节
(a) 您可以“订阅”给您的 friend ,您的 friend 可以回复“已订阅”。
(b) 你的 friend 可以“订阅”你,你也可以回复“已订阅”。

如果 (a) 或 (b) 发生,您的 friend 将在您的名单中。
如果 (a) 或 (b) 发生,您将出现在您的 friend 名单中。

然而……
除非您“订阅”您的 friend ,否则您将看不到他们的状态 - (a) 必须发生
他们不会看到您的状态,除非他们“订阅”您 - (b) 必须发生。

大多数 XMPP 客户端(pidgin、trillian 等)会在您向他们发送“订阅”(在他们向您发送“订阅”之后)时自动让您将“订阅”发回给您的 friend 。 XMPPPY 不会开箱即用。您必须对其进行编码才能执行此操作。

这可以解释为什么您看不到状态。或者,如果这没有涵盖您的情况,它可能会为其他人提供信息。

关于python - XMPP 聊天 : accessing contacts' status messages with xmppPy's Roster,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com