是否有一个ejabberd python库,我可以通过编程方式从python注册用户到ejabberd?
现在我正在使用python命令模块执行“ejabberdctl register”命令。
答案 0 :(得分:11)
如果您在Ejabberd服务器上为mod_register激活了In-Band registration,那么,正如@Drake所指出的,您可以使用XMPP库来注册用户。
在Python中,我建议Sleek XMPP。 Getting started examples是一个很好的起点。
如果您已激活mod_register_web,则可以向http://<SERVERNAME>:5280/admin/server/<VIRTUALHOSTNAME>/users/
发送HTTP POST请求。此URL需要以下3个参数:
其中addnewuser
参数的预期值似乎是字符串“添加用户”。
假设您有ejabberd admin user名为user
且密码为password
,使用requests HTTP library for Python,您可以执行以下操作:
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
答案 1 :(得分:3)
ejabberd是一个Jabber / XMPP即时消息服务器。这意味着您可以使用任何XMPP模块,例如xmppy。
另外,请检查以下帖子:Which is the most mature Python XMPP library for a GChat client?。