8

プログラムでPythonからejabberdにユーザーを登録できるejabberd pythonライブラリはありますか?

現在、python コマンド モジュールを使用して「ejabberdctl register」コマンドを実行しています。

4

2 に答える 2

12

XMPP XEP-0077

Ejabberdサーバーでインバンド登録用にmod_registerをアクティブ化した場合は、@ Drakeが指摘しているように、XMPPライブラリを使用してユーザーを登録できます。

Pythonでは、SleekXMPPをお勧めします。はじめにのは、まあ、良い出発点です。

HTTP

mod_register_webをアクティブにした場合は、HTTPPOSTリクエストをに送信できますhttp://<SERVERNAME>:5280/admin/server/<VIRTUALHOSTNAME>/users/。このURLは、次の3つのパラメーターを想定しています。

  • 新しいユーザーネーム
  • newuserpassword
  • addnewuser

ここで、paramの期待値addnewuserは文字列「AddUser」のようです。

ejabberd adminユーザーが呼び出されuser、パスワードpasswordを使用していると仮定すると、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
于 2012-06-21T14:39:14.943 に答える
3

ejabberd は Jabber/XMPP インスタント メッセージング サーバーです。つまり、xmppyなどの任意の XMPP モジュールを利用できます。

また、このスレッドを確認してください: GChat クライアント用の最も成熟した Python XMPP ライブラリはどれですか? .

于 2011-02-28T12:32:13.377 に答える