Wie man einen API-Schlüssel erhält

Ich versuche, programmatisch ein Thema mit Python in einer Discourse-Instanz zu erstellen, auf der ich die Administratorrolle habe.

Die Dokumentation besagt:

Sie müssen einen API-Schlüssel im Admin-Panel erstellen.

Ich habe im Admin-Panel gesucht/nachgesehen, kann aber nicht finden, wo ich diesen API-Schlüssel generieren kann.

Leider habe ich bereits viel Zeit damit verloren, nach einem Schlüssel zu suchen, den ich als Api-Key-Header verwenden kann. Sollte einfach sein? Wo kann ich ihn generieren?

Zusätzlich ist es mir egal, welche Art von API-Schlüssel ich bekomme, entweder system oder meinen eigenen username.

Das Einzige, was mir wichtig ist, ist die Möglichkeit, ein Thema programmatisch mit einem Python-Skript zu erstellen.

Hallo und willkommen @dsclrsr :slightly_smiling_face:

Sie sollten in der Lage sein, einen API-Schlüssel auf der Admin-API-Seite [YourSite]/admin/api/keys zu generieren.

3 „Gefällt mir“

Ok, es stellt sich heraus, dass ich kein echter Administrator bin, obwohl ich das Admin-Panel unter /admin/ besuchen kann. Ich kann /admin/api/keys nicht besuchen. Ich habe den Hoster gefragt, der das Forum eingerichtet hat, und er konnte mir an dieser Stelle einen Schlüssel erstellen.\n\nEs scheint eine Unterscheidung zwischen „Admin“ (wie ein Moderator) und „Admin“ (wie ein Systemadministrator) zu geben.

2 „Gefällt mir“

Ja, richtig. Moderator und Admin sind in Discourse unterschiedliche Rollen. Ein Moderator hat ziemlich viele Funktionen auf hoher Ebene für die Benutzer- und Inhaltsmoderation, aber ein Admin (oder Sysadmin) hat Zugriff auf weitaus mehr Einstellungen und Funktionen, die sich mit der Einrichtung des Forums selbst befassen. Weitere Informationen zu diesen Rollen finden Sie unter Understanding user statuses, roles, and permissions

2 „Gefällt mir“

Danke für die Hilfe!

2 „Gefällt mir“

Hallo @JammyDodger,

Könnten Sie die Anfrageparameter für diese API erklären oder die Dokumentation teilen?

Ich erhalte eine Antwort ohne den scopes-Parameter, aber wenn ich den scopes-Parameter einschließe, führt dies zu Fehlern.

Wenn möglich, teilen Sie bitte ein Codebeispiel für diese API. Danke!