有没有支持添加/删除用户的python xmpp库?

发布于 2024-10-19 16:32:18 字数 88 浏览 1 评论 0原文

现在我有一个 python 类,它通过执行“ejabberdctl 注册/取消注册”命令来创建用户/删除用户。是否有支持添加/删除用户的python xmpp库?

Right now I have a python class that creates user/deletes users by executing "ejabberdctl register/unregister" commands. Is there a python xmpp library that supports adding/removing users?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月牙弯弯 2024-10-26 16:32:18

您需要实现 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)

You need to have an implementation of XEP-0077: In-Band Registration. xmpppy does appear to support this:

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)
ι不睡觉的鱼゛ 2024-10-26 16:32:18

xmpppy 看起来拥有操纵客户名册的所有各种方法。

我自己从未使用过这个,但 Roster 类的 API 文档列出了: delItem(self, jid) 和 setItem(self, jid) ,它们删除指定的 jid 并将其添加到名册中。

http://xmpppy.sourceforge.net/

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

xmpppy looks to have all the various methods for manipulating a client's roster.

Never used this myself, but the API documentation for the Roster class lists: delItem(self, jid) and setItem(self, jid) that remove and add the specified jid to the roster.

http://xmpppy.sourceforge.net/

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文