Ciao a tutti!
Sto riscontrando alcuni strani problemi che non so come interpretare. Sto usando l’API di Discourse per permettere a qualcuno di postare senza effettuare l’accesso. Per motivi di sicurezza, questo è codice che eseguirò in un ambiente server, e l’ambiente che sto utilizzando sono le Cloud Functions for Firebase basate su Node.js.
Il mio codice completo è il seguente:
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));
});
});
Sono sicuro che questo codice funzioni, perché quando eseguo il codice fetch in isolamento viene creato un post. È quando viene eseguito tramite l’ambiente delle funzioni che ricevo un “Internal Server Error”. Quando leggo i log, vedo “Finished with status: crash”.
Qualcuno ha qualche idea su cosa possa essere sbagliato? Qualcuno è riuscito a far funzionare la creazione di post tramite le funzioni di Firebase?
(cc @blake - Ho seguito il tuo approccio Node.js utilizzando il metodo di richiesta HTTP e ho ottenuto gli stessi risultati!)
Grazie,
Kirupa