Hallo zusammen!
Ich stoße auf einige seltsame Probleme, die ich nicht zu deuten weiß. Ich verwende die Discourse API, um jemandem das Posten ohne Anmeldung zu ermöglichen. Aus Sicherheitsgründen ist dies Code, den ich in einer Serverumgebung ausführen werde, und die Umgebung, die ich verwende, sind die Node.js-basierten Cloud Functions für Firebase.
Mein vollständiger Code sieht wie folgt aus:
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", "<entfernt>");
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));
});
});
Ich bin zuversichtlich, dass dieser Code funktioniert, denn wenn ich den Fetch-Code isoliert ausführe, wird ein Beitrag erstellt. Wenn er über die Functions-Umgebung ausgeführt wird, erhalte ich eine “Internal Server Error”. Wenn ich die Protokolle lese, sehe ich “Finished with status: crash”.
Hat jemand eine Idee, was hier falsch sein könnte? Hat jemand die Erstellung von Beiträgen über die Funktionen von Firebase zum Laufen gebracht?
(cc @blake - Ich habe deinen Node.js-Ansatz befolgt, indem ich die HTTP-Request-Methode verwendet habe, und ich habe die gleichen Ergebnisse erzielt!)
Danke,
Kirupa