私の主な目的は、ユーザー、shared_rostersを保存し、ユーザーをshared_rostersなどに追加することです。私はバックエンドにNodeJSを使用しています。REST APIを呼び出すためにejabberdのoauthトークンを取得しようとしたときに 'access_denied'を取得する
上記のタスクを実行するためのライブラリが見つかりませんでした。そのため、JSONでREST APIを使用することにしました(ejabberdで利用可能です)。このために、私はejabberdのoauthを通じてアクセストークンを取得しようとしています。私はejabberd文書に記載されている手順に従っています。
「ejabberd.yml」ファイルに以下を追加しました。
-
port: 5280
module: ejabberd_http
request_handlers:
"/websocket": ejabberd_http_ws
"/log": mod_log_http
# OAuth support:
"/oauth": ejabberd_oauth
# ReST API:
"/api": mod_http_api
web_admin: true
http_bind: true
captcha: true
また、yautファイルにoauth固有のパラメータが追加されました。
commands_admin_access: configure
commands:
- add_commands: user
oauth_expire: 3600
oauth_access: all
oauthパラメータの配置が非常に重要かどうかはわかりません。私はどこに配置するか分からなかったので、次の行の上に配置しました。私は他のページにこの配置を見ました。
### DATABASE SETUP
再起動されたEjabberd。
私は、次のURLに行くと、私は予想されるページを取得し
http://example.net:5280/oauth/authorization_token?response_type=token&client_id=Client1&redirect_uri=http://client.uri&scope=get_roster+sasl_auth
さて、私のように応答を取得
User: [email protected]
Server: xxx.xxx.x.xxx
Password: admin
以下のように私は、私の管理者のユーザー名とパスワードを入れたときに
error=access_denied
私には何が欠けているかわかりません。誰も私をここで助けてもらえますか?
ありがとうございます。私はもともとあなたの答えを試していましたが、いくつかの変更を加えた後、もう一度試しませんでした。今それは動作します! – JasonB