erlang xmpp ejabberd

erlang - ¿Cómo acceder a ejabberd admin api a través de HTTP?



ejabberd configuration (2)

habilite ejabberd_xmlrpc en el archivo ejabberd.yml elimine el comentario de las siguientes líneas-

## To handle XML-RPC requests that provide admin credentials: ## ## - ## port: 4560 ## module: ejabberd_xmlrpc ## maxsessions: 10 ## timeout: 5000 ## access_commands: ## xmlrpc: ## commands: all ## options: []

Todos los XMLRPC se envían a la siguiente URL: http: // host: 4560 / . para más detalles verifique aquí

Leí sobre el documento https://docs.ejabberd.im/admin/api/

Y me pregunto cómo puedo acceder a esas API a través de HTTP. Intenté acceder pero siempre es 404.


En tu ejabberd.yml puedes encontrar una configuración como esta

- port: 5280 module: ejabberd_http request_handlers: "/websocket": ejabberd_http_ws

Habilita api y oauth,

- port: 5280 module: ejabberd_http request_handlers: "/websocket": ejabberd_http_ws "/api": mod_http_api "/oauth": ejabberd_oauth

Estamos habilitando la API para que tenga acceso desde otros lenguajes de programación (solicitud y respuesta JSON)

Estamos permitiendo a oauth presentar una solicitud de API y obtener una respuesta (sin la cual si accedemos a / api obtendremos solo el error 401 no autorizado)

Una vez que esta configuración esté lista, ingrese una solicitud http en su navegador. La URL debe ser

http://localhost:5280/oauth/authorization_token?response_type=token&client_id=Client1&scope=get_roster+connected_users

get_roster y connected_users son puntos finales API Clinet1 es un nombre que puedes dar a response_type siempre debe ser token

Una vez que lo golpees, se renderizará una pantalla como esta,

Ingrese los detalles de su administrador y haga clic en aceptar

Luego, en la url encontrará un cambio como este

http://localhost:5280/oauth/authorization_token?access_token=Ra9W9aRgeoUgIpN0P68SIGDaatDIVcgB&token_type=bearer&expires_in=3600&scope=get_roster%20connected_users&state=

Puede ver un token de acceso allí y hacer un curl para obtener los usuarios conectados. (Escriba este comando en su terminal)

curl -v POST -H "X-Admin: true" -H "Authorization: Bearer Ra9W9aRgeoUgIpN0P68SIGDaatDIVcgB" http://localhost:5280/api/connected_users -d ''[]''

Obtendrás una respuesta Json con todos los usuarios conectados.

Así es como debes hacer llamadas a la API en ejabberd. Espero que esto ayude :)