【发布时间】:2011-07-05 17:11:04
【问题描述】:
是否有一个 ejabberd python 库,我可以在其中以编程方式从 python 注册用户到 ejabberd?
现在我正在使用 python 命令模块执行“ejabberdctl register”命令。
【问题讨论】:
是否有一个 ejabberd python 库,我可以在其中以编程方式从 python 注册用户到 ejabberd?
现在我正在使用 python 命令模块执行“ejabberdctl register”命令。
【问题讨论】:
如果您在 Ejabberd 服务器上为 In-Band registration 激活了 mod_register,那么,正如 @Drake 所指出的,您可以使用 XMPP 库来注册用户。
在 Python 中,我会推荐 Sleek XMPP。 Getting started examples 是一个很好的起点。
如果您已激活mod_register_web,则可以向http://<SERVERNAME>:5280/admin/server/<VIRTUALHOSTNAME>/users/ 发送HTTP POST 请求。此 URL 需要以下 3 个参数:
addnewuser 参数的预期值似乎是字符串“Add User”。
假设您有一个名为 user 的 ejabberd admin user 和密码 password,使用 Python 的 requests HTTP library,您可以执行以下操作:
import requests
from requests.auth import HTTPBasicAuth
server = "NAME OF YOUR EJABBERD SERVER"
virtualhost = "NAME OF YOUR EJABBERD HOST"
url = "http://%s:5280/admin/server/%s/user/" % (server, virtualhost)
auth = HTTPBasicAuth("user", "password")
data = {
'newusername': "new_user",
'newuserpassword': "new_password",
'addnewuser': "Add User"
}
resp = requests.post(url, data=data, auth=auth)
assert resp.status_code == 200
【讨论】:
url = "http://%s:5280/admin/server/%s/users/" % (server, virtualhost)
ejabberd 是一个 Jabber/XMPP 即时消息服务器。这意味着您可以使用任何 XMPP 模块,例如 xmppy。
另外,请查看此线程:Which is the most mature Python XMPP library for a GChat client?。
【讨论】: