Salut tout le monde !
Je rencontre des problèmes étranges que je n’arrive pas à comprendre. J’utilise l’API Discourse pour permettre à quelqu’un de poster sans se connecter. Pour des raisons de sécurité, il s’agit d’un code que j’exécuterai dans un environnement serveur, et l’environnement que j’utilise est Cloud Functions for Firebase basé sur Node.js.
Mon code complet ressemble à ceci :
const functions = require("firebase-functions");
const fetch = require('node-fetch');
const cors = require("cors")({ origin: true });
exports.makeDiscoursePost = functions.https.onRequest((request, response) => {
cors(request, response, () => {
let myHeaders = new Headers();
myHeaders.append("Api-Key", "<removed>");
myHeaders.append("Api-Username", "system");
myHeaders.append("Content-Type", 'application/json');
let requestOptions = {
method: 'POST',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://forum.kirupa.com/posts.json?title=Testingggg Discourse API, Part 2&raw=Making a brand new post using the API and seeing if things still work.", requestOptions)
.then(r => r.json())
.then(result => response.send(result))
.catch(error => response.send(error));
});
});
Je suis convaincu que ce code fonctionne, car lorsque j’exécute le code fetch isolément, un post est créé. C’est lorsqu’il est exécuté via l’environnement des fonctions que j’obtiens une “Erreur interne du serveur”. Lorsque je lis les journaux, je vois “Finished with status: crash”.
Quelqu’un a-t-il des idées sur ce qui pourrait clocher ? Quelqu’un a-t-il réussi à faire fonctionner la création de posts via les fonctions de Firebase ?
(cc @blake - J’ai suivi votre approche Node.js en utilisant la méthode de requête HTTP, et j’ai obtenu les mêmes résultats !)
Merci,
Kirupa