Einige Endpunkte erfordern keine Authentifizierung, so ziemlich alles andere erfordert, dass Sie authentifiziert sind. Um authentifiziert zu werden, müssen Sie einen API-Schlüssel im Admin-Panel erstellen.
Das ist schade, denn es gibt viele legitime Anwendungsfälle für die API,
die normale Benutzer nutzen könnten, nicht nur Administratoren.
Zum Beispiel ein monatlicher Cronjob, den ein Benutzer einrichten könnte, um seine
preferences.json herunterzuladen, anstatt auf Download in den Einstellungen zu klicken (Backup/export/import Preferences).
Ich sage, dass eine Änderung im Quellcode erforderlich ist, damit Benutzer auf der ganzen Welt bald auf die API des lokalen Discourse, das sie verwenden, zugreifen können, um ihre persönlichen Daten usw. abzurufen.
Jedoch können „normale Benutzer“ ohne Unterstützung von Administratoren und einem genehmigten Endpunkt in den Website-Einstellungen für API-Schlüssel des Benutzers immer noch keine eigenen API-Schlüssel generieren.
Diese Antwort ist falsch. Jeder Benutzer kann einen Benutzer-API-Schlüssel generieren, wenn die Generierung von Benutzer-API-Schlüsseln für die Vertrauensstufe des Benutzers aktiviert ist. Wenn Sie keine Weiterleitung in der Anforderungspayload festlegen, wird im Browser eine Base64-codierte Antwort angezeigt, die den Schlüssel enthält.
Sehen Sie sich dieses Thema für ein Skript an, das zeigt, wie es gemacht wird.
Ich denke, für den Standardfall, in dem Person A Discourse installiert hat und Person B nur ein einfacher Benutzer auf Person A’s Discourse ist und A keine Admin-Einstellungen geändert hat, könnte B dann mit der API noch viel tun?
Die Generierung von User-API-Schlüsseln ist standardmäßig für alle Benutzer aktiviert, und alles, was Sie über die Weboberfläche tun können, können Sie auch über die API tun, da die Weboberfläche nur ein Frontend für die API ist.
Ich persönlich verwende sie in einer Chrome-Erweiterung, die eine laufende Summe aller meiner ungelesenen Benachrichtigungen über alle Instanzen hinweg anzeigt, auf denen ich Konten habe, mit wenigen Ausnahmen.
Wenn ein Benutzer bereits ein Konto auf einer Discourse-Instanz hat, sollte er seine Cookie-Authentifizierung vom Browser bei allen API-Anfragen, die kein Browser sind, verwenden können.