2016-05-06 78 views

risposta

6

Nel vostro ejabberd.yml è possibile trovare una configurazione come questa

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

Abilita API e OAuth,

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

Stiamo permettendo api di avere accesso da altri linguaggi di programmazione (richiesta JSON e la risposta)

Stiamo abilitando oauth a sollevare una richiesta API e otterremo risposta (senza la quale se accediamo/api otterremo solo 401-errore non autorizzato)

Una volta completata questa configurazione, fornire una richiesta http nel browser. URL deve essere

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

get_roster e connected_users sono API punti finali Clinet1 è un nome che si può dare response_type deve essere sempre pegno

Una volta che ha colpito lo farà rendere una schermata come questa,

enter image description here

Inserisci i tuoi dati di amministrazione e fare clic su accetta

Poi nell'URL troverete un cambiamento simile a questa

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

Si può vedere un token di accesso non copyit e fare un ricciolo di ottenere gli utenti connessi. (Digitare il seguente comando nel terminale)

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

Si otterrà una risposta JSON con tutti gli utenti connessi.

Questo è come si dovrebbe fare chiamate API in ejabberd. Spero che questo aiuti :)

+0

Ho bisogno di scrivere un lavoro di back-end in PHP per registrare un nuovo utente da un'altra applicazione per ejabberd e come avrei potuto ignorare la schermata di richiesta di autorizzazione al fine di ottenere attraverso il codice? –

+0

Utilizza il metodo di autenticazione esterno e segui [doc] (https://www.ejabberd.im/check_mysql_php) –

+0

Grazie! È quello che voglio. –

1

effettuato ejabberd_xmlrpc nel file di ejabberd.yml commentare la seguente linee-

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

Tutti XMLRPC vengono inviati al seguente URL: http://host:4560/. for more detail check here

+1

Ma Admin API ancora non funziona. Hai idea di come abilitare l'API di amministrazione di JSON? –

+0

Se è possibile fornire i passaggi per l'attivazione dell'API sarà fantastico. –