Olá a todos!
Estou encontrando alguns problemas estranhos que não sei como interpretar. Estou usando a API do Discourse para permitir que alguém poste sem fazer login. Por motivos de segurança, este é um código que executarei em um ambiente de servidor, e o ambiente que estou usando são as Funções Cloud para Firebase baseadas em Node.js.
Meu código completo é o seguinte:
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", "<removido>");
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));
});
});
Tenho confiança de que este código funciona, pois quando executo o código fetch isoladamente, uma postagem é feita. É quando ele é executado através do ambiente de funções que recebo um “Erro Interno do Servidor”. Quando leio os logs, vejo “Finished with status: crash”.
Alguém tem alguma ideia do que pode estar errado? Alguém conseguiu fazer a criação de posts funcionar através das funções do Firebase?
(cc @blake - Segui sua abordagem Node.js usando o método de requisição HTTP e obtive os mesmos resultados!)
Obrigado,
Kirupa