Ошибка 400 неверных запросов при вызове ejabberd api

Я получаю 400 ошибочных запросов при вызове конечной точки "/api/get_roster" ejabberd. Я держал "get_roster" в области видимости при запросе токена oauth.

Ошибка 400 неверных запросов в ejabberd

Я думаю, что есть некоторые проблемы с разрешениями. Вот мой файл конфигурации:

https://www.dropbox.com/s/his89bx39qhvr1h/ejabberd2.yml?dl=0

Я пытался следовать официальной документации. Согласно руководству по разрешению API, я также попытался добавить следующие свойства:

api_permissions:
  - "Admin access":
    - who:
      - admin
    - what
      - "\*"
      - "!stop"

Но не было никаких изменений. У меня есть следующие вопросы:

  1. Что я здесь не так делаю?
  2. Каковы возможные области применения?

3 ответа

Вы можете обратиться к этой ссылке для более подробной информации. Если вы заходите как администратор, вы можете использовать commands_admin_access Правило для предоставления доступа к командам API и укажите команды, к которым вы хотите получить доступ, следующим образом:

commands:
  - add_commands:
    - get_roster
commands_admin_access: configure

Вы используете очень старую версию Ejabberd. Последний - 17.04, в котором есть множество изменений в структуре разрешений API с 16.01 . Конфигурация, связанная с api_permission, появилась в версии 16.12. Пожалуйста, обратитесь к этому для более подробной информации.

Ваш запрос должен содержать заголовок авторизации, как показано ниже:

curl -v -X POST -H "Authorization: Bearer <Oauth_token>" http://localhost:5280/api/get_roster -d '[]'
Другие вопросы по тегам