Hallo zusammen, ich habe Probleme beim Aktualisieren eines Themas. Ich kann die id des ersten Beitrags ermitteln, wie hier gezeigt. Dies wird durch die Ausführung des folgenden Codes bestätigt:
import requests
from requests.structures import CaseInsensitiveDict
url = "https://my/discourse/instance/posts/{post_id}.json"
headers = CaseInsensitiveDict()
headers["Authorization"] = "{"api-key": "{le_api_key}", "api-username": "{le_username}"}"
resp = requests.get(url, headers=headers)
print(resp.status_code)
Dies gibt einen Statuscode 200 zurück sowie die erwarteten Informationen über den Beitrag.
Wenn ich jedoch Folgendes versuche:
import requests
from requests.structures import CaseInsensitiveDict
url = "https://my/discourse/instance/posts/{post_id}.json"
headers = CaseInsensitiveDict()
headers["Authorization"] = "{"api-key": "le_api_key", "api-username": "le_username"}"
headers["Content-Type"] = "application/json"
data = """
{
"post": {
"raw": "Cooler Beitrag, aber hier ist ein Update für den Beitragstext",
"edit_reason": "Ich habe dies geändert, weil ich es kann."
}
}
"""
resp = requests.put(url, headers=headers, data=data)
print(resp.status_code)
erhalte ich ["BAD CSRF"].
Ich bin Administrator und mein Schlüssel ist global. Idealerweise würde ich dies mit einem weniger privilegierten Schlüssel ausführen möchten. Dieser Beitrag ist der erste und einzige in einem Thema, das ich über die API erstellt habe.
Vielen Dank im Voraus ![]()