有没有支持添加/删除用户的Python XMPP库?

3 投票
2 回答
2212 浏览
提问于 2025-04-16 12:36

我现在有一个Python类,可以通过执行“ejabberdctl register/unregister”命令来创建和删除用户。请问有没有Python的XMPP库可以支持添加和删除用户呢?

2 个回答

1

xmpppy这个库似乎提供了很多方法,可以用来管理客户端的好友列表。

我自己没用过,不过它的API文档里提到,Roster类有两个方法:delItem(self, jid)和setItem(self, jid),分别用来从好友列表中删除和添加指定的jid。

http://xmpppy.sourceforge.net/

http://xmpppy.sourceforge.net/apidocs/

6

你需要有一个关于 XEP-0077 的实现,也就是“带内注册”。看起来 xmpppy 是支持这个功能的:

import sys
import os
import xmpp

if len(sys.argv) < 3:
    print "Syntax: register.py [JID] [Password]"
    sys.exita(64)

jid=xmpp.protocol.JID(sys.argv[1])
cli=xmpp.Client(jid.getDomain(), debug=[])
cli.connect()

# getRegInfo has a bug that puts the username as a direct child of the
# IQ, instead of inside the query element.  The below will work, but
# won't return an error when the user is known, however the register
# call will return the error.
xmpp.features.getRegInfo(cli,
                         jid.getDomain(),
                         #{'username':jid.getNode()},
                         sync=True)

if xmpp.features.register(cli,
                          jid.getDomain(),
                          {'username':jid.getNode(),
                           'password':sys.argv[2]}):
    sys.stderr.write("Success!\n")
    sys.exit(0)
else:
    sys.stderr.write("Error!\n")
    sys.exit(1)

撰写回答