تعذر إضافة منشور جديد باستخدام API

مرحباً، أنا غير قادر على إضافة منشور جديد إلى موضوع في منتدى 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"
}

على الرغم من أن موضوع المنتدى موجود ويمكنني النشر فيه مباشرة على موقع المنتدى.
أرجو المساعدة.

404 ليس من المحتمل أن يعني أن مفتاح API الخاص بك سيء أو لم يتم تمريره بشكل صحيح.

إلا إذا كان يعني أنك تستخدم المسار الخاطئ بالفعل. إذا قمت بـ هندسة عكسية لواجهة برمجة تطبيقات Discourse لمنشور، فهل هذا هو المسار المستخدم؟

أنا أستخدم هذا المسار: ${DISCOURSE_API_URL}/t/${topicId}/posts.json
حيث DISCOURSE_API_URL = \"https://community.xxxxxxxxxxx.com\"

أعتقد أن عنوان URL للرد على موضوع عبر واجهة برمجة التطبيقات هو /posts.json. عند إنشاء رد، على عكس إنشاء موضوع جديد، فإن topic_id هو معلمة مطلوبة.

التفاصيل هنا: Discourse API Docs ولكن يمكنك أيضًا إنشاء رد لموضوع من خلال واجهة المستخدم الخاصة بموقعك والتحقق من عنوان URL للطلب الذي تم تعيينه في قسم “الشبكة” في مستكشف الويب الخاص بمتصفحك.

إعجابَين (2)