是否有一个ejabberd的Python库,可以让我通过Python编程自动注册用户到ejabberd?
目前,我正在使用Python命令模块执行“ejabberdctl register”命令。
如果您已经在您的Ejabberd服务器上启用了mod_register以进行In-Band注册,则可以像@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
且密码为password
的ejabberd管理员用户,则可以使用Python的requests HTTP库执行以下操作:
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
ejabberd是一款Jabber/XMPP即时通讯服务器。这意味着您可以利用任何XMPP模块,例如xmppy。
此外,请查看此线程:哪个Python XMPP库最成熟,适用于GChat客户端?。
url = "http://%s:5280/admin/server/%s/users/" % (server, virtualhost)
- Julian Espinel