Impossible d'ajouter un nouveau message via API

Bonjour, je ne parviens pas à ajouter un nouveau message à un sujet sur mon forum Discourse en utilisant l’API. Voici mon code :

function postComment(topicId, comment) {
  const url = `${DISCOURSE_API_URL}/t/${topicId}/posts.json`; // Assurez-vous que cette URL est correcte
  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, // Pour capturer la réponse d'erreur complète
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const jsonResponse = JSON.parse(response.getContentText());

    // Enregistrer la réponse pour le débogage
    Logger.log(`Response Code: ${response.getResponseCode()}`);
    Logger.log(`Response Body: ${JSON.stringify(jsonResponse, null, 2)}`);

    // Vérifier si la publication a réussi
    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; // Retourner la réponse de l'API
  } catch (error) {
    Logger.log(`Error posting comment: ${error}`);
    return null; // Retourner null en cas d'erreur
  }
}

Je reçois cette réponse :

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"
}

Même si le sujet du forum existe et que je peux y publier directement sur le site web du forum.
Aidez-moi s’il vous plaît.

404 signifie probablement que votre clé d’API est incorrecte ou qu’elle n’est pas transmise correctement.

À moins que cela ne signifie que vous utilisez le mauvais chemin. Si vous Ingénierie inverse de l’API Discourse pour un article, est-ce le chemin utilisé ?

J’utilise ce chemin : ${DISCOURSE_API_URL}/t/${topicId}/posts.json
DISCOURSE_API_URL = \"https://community.xxxxxxxxxxx.com\"

Je pense que l’URL pour répondre à un sujet via l’API est /posts.json. Lors de la création d’une réponse, par opposition à la création d’un nouveau sujet, topic_id est un paramètre requis.

Les détails sont ici : Discourse API Docs, mais vous pouvez également simplement créer une réponse à un sujet via l’interface utilisateur de votre site et vérifier l’URL de la requête qui est définie dans la section “network” de l’inspecteur web de votre navigateur.

2 « J'aime »