Ciao a tutti, ho problemi nell’aggiornare un argomento. Riesco a ottenere l’id del primo post come mostrato qui. Questo è confermato eseguendo quanto segue:
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)
Che restituisce un codice di stato 200 e le informazioni che mi aspettavo sul post.
Ma quando provo:
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": "Cool post, but here's an updated to the post's body",
"edit_reason": "I changed this because I can."
}
}
"""
resp = requests.put(url, headers=headers, data=data)
print(resp.status_code)
Ottengo
["BAD CSRF"]
Sono un amministratore e la mia chiave è global. Idealmente, vorrei eseguire questo con una chiave meno permissiva.
Questo post è il primo e unico in un argomento che ho creato tramite l’API.
Grazie mille in anticipo ![]()