2017-04-11 5 views
0

Ich bekomme 400 schlechte Anfrage Fehler beim Aufruf "/ api/get_roster" Endpunkt von ejabberd. Ich hatte "get_roster" im Bereich behalten, während ich den oauth Token anforderte.400 schlechte Anfrage Fehler beim Aufruf ejabberd api

400 bad request error in ejabberd

Ich denke, es einige Probleme mit den Berechtigungen ist. Hier ist meine Konfigurationsdatei:

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

Ich habe versucht, die offizielle Dokumentation zu folgen. Gemäß dem API-Erlaubnisführer habe ich auch versucht, folgende Eigenschaften hinzuzufügen:

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

Aber es gab keine Änderung. Ich habe folgende Fragen:

  1. Was mache ich hier falsch?
  2. Was sind mögliche Bereiche?
+0

Laut Dokument Hinweis: Um den get_roster-Bereich zu verwenden, muss mod_admin_extra aktiviert sein. Andernfalls ist der Befehl unbekannt und Sie erhalten einen ungültigen Scope-Fehler. –

+0

Ich habe mod_admin_extra im Modulabschnitt der XML-Datei erwähnt. Ich habe den Fehler invalid_scope nicht erhalten. Ich kann Token erwerben. Es ist nur, dass, wenn ich dieses Token in POST-Aufruf an API-Endpunkt verwende, es 400 ungültige Anforderung sagt. –

+0

Welche Version von ejabberd verwenden Sie? – Darshan

Antwort

0

Ihr Antrag ist Authorization wie unten enthalten Header:

curl -v -X POST -H "Authorization: Bearer <Oauth_token>" http://localhost:5280/api/get_roster -d '[]' 
+0

Ich mache das gleiche: https://www.dropbox.com/s/rgh88lua0jdytu5/Screen%20Shot%202017-04-11%20at%209.24.13%20PM.png?dl=0 –

+0

können Sie Server-Logs teilen ? –

+0

hier ist es https://www.dropbox.com/s/vrlw2gc6p15e5dx/ejabberd_error_log_11_april.log?dl=0. Es erkennt keine "api_permissions" -Eigenschaft. Ich habe es verlegt? –

0

Sie auf diese link um weitere Informationen zu beziehen. Wenn Sie als Administrator zugreifen können Sie commands_admin_access Regel verwenden, um Zugriff auf API-Befehle zur Verfügung zu stellen und die Befehle angeben, die Sie zugreifen möchten, wie folgt:

commands: 
    - add_commands: 
    - get_roster 
commands_admin_access: configure 
0

Sie sind sehr alte Version von Ejabberd verwenden. Das Neueste ist 17.04, welches seit dem 16.01. Viele Änderungen im API Permission Framework enthält. api_permission bezogene Konfiguration kam in 16.12 Version. Weitere Informationen finden Sie unter this.

Verwandte Themen