这是我的用例:
- 用户点击网页上的链接说:“在 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 和代码示例——我真的有,我现在只是被这段代码困住了。
提前感谢您的任何意见。