E aí, pessoal, estou com problemas ao atualizar um tópico. Consegui obter o id da primeira postagem, conforme mostrado aqui. Isso foi confirmado ao executar o seguinte:
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)
O que retorna um código de status 200 e as informações esperadas sobre a postagem.
Mas quando tento:
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": "Post legal, mas aqui está uma atualização no corpo da postagem",
"edit_reason": "Mudei isso porque posso."
}
}
"""
resp = requests.put(url, headers=headers, data=data)
print(resp.status_code)
Recebo:
["BAD CSRF"]
Sou administrador e minha chave é global. Idealmente, gostaria de executar isso com uma chave menos permissiva.
Esta postagem é a primeira e única em um tópico que criei via API.
Muito obrigado desde já ![]()