Als Moderator möchte ich die API für ein Discourse-Forum verwenden. Normalerweise war sie aktiviert und ich habe es geschafft, einen API-Schlüssel zu erhalten. Ich habe dieses Skript verwendet:
Ich habe es geschafft, einen Schlüssel abzurufen, der 32 Zeichen lang ist (stimmt das?), und in den Sicherheitseinstellungen meines Kontos zeigt die App mit diesen Berechtigungen:
Alle lesen
Alle schreiben
Live-Updates
Push-Benachrichtigungen an externe Dienste
Benachrichtigungen lesen und löschen
Informationen zur Benutzersitzung lesen
Einmaliges Anmeldetoken erstellen
Das sieht ziemlich gut aus. Wenn ich jedoch versuche, über ein Skript mit Folgendem darauf zuzugreifen:
from pydiscourse import DiscourseClient
client = DiscourseClient(
'https://forum.example.com',
api_username='tflidd',
api_key='388b79103056fede1d3223dae032df99')
client.user("tflidd")
Dies ist eine Python-Bibliothek, daher gehe ich davon aus, dass sie funktionieren sollte. Der API-Schlüssel hat dieses spezifische Format, es ist nicht der tatsächliche Schlüssel. Ich erhalte die Fehlermeldung, dass entweder der Benutzername oder der API-Schlüssel ungültig sind.
Verwende ich meinen Benutzernamen oder den App-Namen?
Ist der API-Schlüssel zumindest im richtigen Format, vielleicht ist beim Entschlüsseln etwas schiefgelaufen?
Wenn ich curl wie hier verwende (Discourse-user-notes API - #4 by codetricity):
curl https://forum.example.com/t/95783.json\ -H 'Api-Key: 388b79103056fede1d3223dae032df99'\ -H 'Api-Username: tflidd'
Ich erhalte ebenfalls einen Fehler:
{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}
Wenn ich dieselbe URL mit den JSON-Daten in meinem Browser öffne, wo ich angemeldet bin, zeigt der Webbrowser das richtige JSON-Objekt an. Der Thread existiert also und ich habe die Berechtigung, darauf zuzugreifen (dies war sogar ein öffentlicher Thread).
Ich bin nur Moderator, habe keinen direkten Admin-Zugriff. Ich könnte weitere Informationen aus den Protokollen anfordern, wenn Sie Hinweise haben, wonach ich suchen soll.
Falls es wichtig ist, die installierte Version ist: 3.2.0.beta4-dev