有ejabberd python库吗?

2024-10-01 09:40:32 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有一个ejabberd python库,其中我可以通过编程方式将用户注册到ejabberd?在

现在我正在使用python命令模块执行“ejabberdctl register”命令。在


Tags: 模块命令register编程方式用户注册ejabberdejabberdctl
2条回答

XMPP XEP-0077

如果您在Ejabberd服务器上为In-Band registration激活了mod_register,那么,正如@Drake所指出的,您可以使用XMPP库来注册用户。在

在Python中,我建议使用Sleek XMPPGetting started examples是一个很好的起点。在

HTTP协议

如果您激活了mod_register_web,那么您可以向http://<SERVERNAME>:5280/admin/server/<VIRTUALHOSTNAME>/users/发送一个httppost请求。此URL需要以下3个参数:

  • 新用户名
  • 新用户密码
  • 新添加用户

其中,addnewuser参数的预期值似乎是字符串“Add User”。在

假设您有一个名为userejabberd 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

ejabberd是一个Jabber/XMPP即时消息服务器。这意味着您可以使用任何XMPP模块,比如xmppy。在

另外,检查这个线程:Which is the most mature Python XMPP library for a GChat client?。在

相关问题 更多 >