Привет, друзья! У меня возникли проблемы с обновлением темы. Я могу получить id первого поста, как показано здесь. Это подтверждается выполнением следующего кода:
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)
Код возвращает статус 200 и ожидаемую информацию о посте.
Однако при попытке выполнить следующее:
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": "Крутой пост, но вот обновлённое тело поста",
"edit_reason": "Я изменил это, потому что могу."
}
}
"""
resp = requests.put(url, headers=headers, data=data)
print(resp.status_code)
Получаю ошибку ["BAD CSRF"].
Я являюсь администратором, и мой ключ имеет тип global. В идеале я хотел бы запускать это с менее привилегированным ключом.
Этот пост является первым и единственным в теме, которую я создал через API.
Заранее большое спасибо ![]()