Ошибка 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"
Но не было никаких изменений. У меня есть следующие вопросы:
- Что я здесь не так делаю?
- Каковы возможные области применения?
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 '[]'