مرحباً أيها الأصدقاء، أواجه مشاكل في تحديث موضوع. أستطيع الحصول على 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"]
أنا مسؤول (Admin) ومفتاحي هو global. أود مثلاً تشغيل هذا باستخدام مفتاح أقل صلاحيات.
هذا المنشور هو الأول والوحيد في موضوع قمت بإنشائه عبر واجهة برمجة التطبيقات (API).
شكراً جزيلاً مقدماً ![]()