Ich versuche, die Discourse-API zu verwenden, um eine Liste aller Beiträge (nur die ersten Beiträge) mit einem bestimmten Tag zu erstellen. Bisher konnte ich nur die neuesten Beiträge abrufen, was etwa 40 Beiträge einschließlich Kommentaren ergibt. Als ich versuchte, eine bestimmte Beitrags-ID abzurufen, funktionierten einige, aber für einige erhielt ich die Antwort
{'errors': ['You are not permitted to view the requested resource.'],'error_type': 'invalid_access'}
obwohl der von mir verwendete API-Schlüssel über Administratorzugriff auf alle Beiträge auf unserem Discourse verfügt. Ist jemandem dieses Problem schon einmal begegnet?
Können Sie Ihren Codeausschnitt posten? (Ohne den API-Schlüssel einzuschließen)
Sehen Sie hier ein Muster, was funktioniert und was nicht?
Hallo @RGJ, mir ist aufgefallen, dass ich einzelne Beiträge abrufen kann, wenn sie ursprünglich in der Liste enthalten waren, die von posts.json abgerufen wurde. Ich habe den folgenden Codeausschnitt verwendet
url = "https://forum.algovera.ai/posts.json"
username = "algovera"
params = {'Api-Key': api_key, "Api-Username": username}
r = requests.get(url = url, params = params)
data = r.json()
Dann habe ich versucht, diesen Aufruf in https://forum.algovera.ai/posts/{id}.json", wobei die ID aus der URL des jeweiligen Beitrags übernommen wurde, den ich mir angesehen habe.
Die Nummer in der URL ist nicht die ID, das ist die Beitragsnummer, die sich auf die Topic-ID bezieht.
Wenn Sie die Beitrags-ID erhalten möchten, können Sie sie aus dem Topic-JSON als post_stream.posts[].id abrufen.
Die Beiträge in diesem Topic haben also
| Topic-ID | Beitragsnummer | ID |
|---|---|---|
| 255455 | 1 | 1241013 |
| 255455 | 2 | 1241026 |
| 255455 | 3 | 1241056 |
und Ihr letzter Beitrag in diesem Topic ist https://meta.discourse.org/posts/1241056.json
Stimmt, danke. Das hat funktioniert. Was müsste ich aufrufen, wenn ich die neuesten Themen und dann den Rohtext für den ersten Beitrag in jedem Thema abrufen möchte? Ich habe den Aufruf „Themen auflisten“ in der Dokumentation gesehen, bin mir aber nicht sicher, was der Slug sein soll.