【问题标题】:Is there any python xmpp library that supports adding/removing users?是否有任何支持添加/删除用户的 python xmpp 库?
【发布时间】:2011-07-05 03:45:16
【问题描述】:

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

【问题讨论】:

    标签: python xmpp ejabberd


    【解决方案1】:

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

    我自己从来没有使用过这个,但是 Roster 类的 API 文档列出了:delItem(self, jid) 和 setItem(self, jid) 删除和添加指定的 jid 到 roster。

    http://xmpppy.sourceforge.net/

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

    【讨论】:

    • 如果它是一个名册,那么如果我是正确的,它假定已经有一个用户。我真正想要的是添加另一个用户而不是将用户添加到另一个用户的名册中。我已经在我的本地安装了一个 ejabber 服务器,我想添加用户 foobar 所以它会有 jid foobar@localhost。
    【解决方案2】:

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

    【讨论】:

    • 正是我想要的。顺便说一句,您是否推荐 xmppy 而不是 slimxmpp?
    • 总的来说,我更喜欢 Sleek,但 xmpppy 有 iq:register 支持。不过,将 iq:register 支持添加到 Sleek 会很容易。
    • 我尝试使用他们 wiki 中的插件在 slim 上添加 iq:register,但无法运行。你已经这样做了吗?我可以查看任何示例代码吗?
    猜你喜欢
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多