现在我有一个 python 类,它通过执行“ejabberdctl register/unregister”命令来创建用户/删除用户。是否有支持添加/删除用户的 python xmpp 库?
问问题
2122 次
2 回答
6
您需要实现XEP-0077 : In-Band Registration。 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)
于 2011-02-28T17:16:53.323 回答
1
xmpppy 看起来拥有用于操作客户名册的所有各种方法。
我自己从来没有使用过这个,但是 Roster 类的 API 文档列出了: delItem(self, jid) 和 setItem(self, jid) 删除和添加指定的 jid 到名册。
于 2011-02-27T07:38:34.193 回答