如何使用 SleekXMPP 或 python 处理 XMPP 订阅我一般
Posted
技术标签:
【中文标题】如何使用 SleekXMPP 或 python 处理 XMPP 订阅我一般【英文标题】:How to handle XMPP subscribtions with SleekXMPP or python i general 【发布时间】:2011-06-28 12:58:57 【问题描述】:这是我的用例:
-
用户点击网页上的链接说:“在 XMPP 上关注此人”
脚本启动并获取(基于注册数据)请求者用户名和密码并启动。
订阅请求已发送。如果订阅已发送,则脚本不应发送另一个订阅。如果订阅被拒绝,脚本应该通知用户。
然后脚本应该退出
到目前为止,这是我的代码,使用 SleekXMPP:
import sys, sleekxmpp, logging
if sys.version_info < (3, 0):
reload(sys)
sys.setdefaultencoding('utf8')
#This is hardcoded here, for illustration.
jid = 'hermans@******.com/Work'
password = '********'
targetjid = 'simena@*******.com/Work'
class SubscribeWorker(sleekxmpp.ClientXMPP):
def __init__(self, jid, password):
sleekxmpp.ClientXMPP.__init__(self, jid, password)
self.add_event_handler("session_start", self.start)
def start(self, event):
self.send_presence(pto=targetjid, ptype='subscribe')
self.get_roster()
if __name__ == '__main__':
logging.basicConfig(level=5,format='%(levelname)-8s %(message)s')
xmpp = SubscribeWorker(jid, password)
if xmpp.connect():
xmpp.process(threaded=False)
print("Done")
else:
print("Unable to connect.")
这会成功发送请求,但不会占用任何现有请求或订阅状态的高度。有没有人有关于使用 XMPP 进行订阅/取消订阅处理的示例代码? 而且我试图理解 wiki 和代码示例——我真的有,我现在只是被这段代码困住了。
提前感谢您的任何意见。
【问题讨论】:
【参考方案1】:或者,尝试在网页上添加xmpp:simena@*.com?subscribe,这应该在您现有的桌面客户端中执行正确的操作。
【讨论】:
以上是关于如何使用 SleekXMPP 或 python 处理 XMPP 订阅我一般的主要内容,如果未能解决你的问题,请参考以下文章