مرحباً، أنا غير قادر على إضافة منشور جديد إلى موضوع في منتدى Discourse الخاص بي باستخدام واجهة برمجة التطبيقات (API)، الكود الخاص بي:
function postComment(topicId, comment) {
const url = `${DISCOURSE_API_URL}/t/${topicId}/posts.json`; // تأكد من أن هذا العنوان صحيح
Logger.log(`Posting to URL: ${url}`);
const headers = {
"Api-Key": DISCOURSE_API_KEY,
"Api-Username": DISCOURSE_API_USERNAME
};
const payload = {
post: {
topic_id: topicId,
raw: comment
},
};
const options = {
method: "post",
contentType: "application/json",
headers: headers,
payload: JSON.stringify(payload),
muteHttpExceptions: true, // لالتقاط استجابة الخطأ الكاملة
};
try {
const response = UrlFetchApp.fetch(url, options);
const jsonResponse = JSON.parse(response.getContentText());
// تسجيل الاستجابة لتصحيح الأخطاء
Logger.log(`Response Code: ${response.getResponseCode()}`);
Logger.log(`Response Body: ${JSON.stringify(jsonResponse, null, 2)}`);
// التحقق مما إذا كان النشر ناجحًا
if (response.getResponseCode() === 200) {
Logger.log(`Posted comment successfully: ${JSON.stringify(jsonResponse, null, 2)}`);
} else {
Logger.log(`Failed to post comment: ${JSON.stringify(jsonResponse, null, 2)}`);
}
return jsonResponse; // إرجاع استجابة واجهة برمجة التطبيقات
} catch (error) {
Logger.log(`Error posting comment: ${error}`);
return null; // إرجاع null عند حدوث خطأ
}
}
أتلقى هذه الاستجابة:
Info
Response Code: 404
3:35:29 PM
Info
Response Body: {
"errors": [
"The requested URL or resource could not be found."
],
"error_type": "not_found"
}
على الرغم من أن موضوع المنتدى موجود ويمكنني النشر فيه مباشرة على موقع المنتدى.
أرجو المساعدة.