有一个ejabberd python库吗?

时间:2011-02-28 11:39:17

标签: python ejabberd

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

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

2 个答案:

答案 0 :(得分:11)

XMPP XEP-0077

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

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

HTTP

如果您已激活mod_register_web,则可以向http://<SERVERNAME>:5280/admin/server/<VIRTUALHOSTNAME>/users/发送HTTP POST请求。此URL需要以下3个参数:

  • newusername
  • newuserpassword
  • AddNewUser函数

其中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?