Salut à tous, je rencontre des problèmes pour mettre à jour un sujet. Je parviens à obtenir l’id du premier message comme indiqué ici. Cela est confirmé en exécutant ce qui suit :
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)
Ce qui renvoie un code de statut 200 et les informations attendues concernant le message.
Mais lorsque j’essaie :
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": "Super message, mais voici une mise à jour du corps du message",
"edit_reason": "Je l'ai changé parce que je le peux."
}
}
"""
resp = requests.put(url, headers=headers, data=data)
print(resp.status_code)
Je reçois
["BAD CSRF"]
Je suis administrateur et ma clé est global. Idéalement, je souhaiterais exécuter cela avec une clé moins permissive.
Ce message est le premier et unique dans un sujet que j’ai créé via l’API.
Merci beaucoup par avance ![]()