Hola a todos!
Estoy encontrando algunos problemas extraños que no sé cómo interpretar. Estoy usando la API de Discourse para permitir que alguien publique sin iniciar sesión. Por razones de seguridad, este es un código que ejecutaré en un entorno de servidor, y el entorno con el que voy es Cloud Functions para Firebase basado en Node.js.
Mi código completo se ve así:
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));
});
});
Confío en que este código funcione, ya que cuando ejecuto el código fetch de forma aislada, se realiza una publicación. Es cuando se ejecuta a través del entorno de funciones que obtengo un “Error Interno del Servidor”. Cuando leo los registros, veo “Finished with status: crash”.
¿Alguien tiene alguna idea de lo que podría estar mal? ¿Alguien ha logrado que la creación de publicaciones funcione a través de las funciones de Firebase?
(cc @blake - Seguí tu enfoque de Node.js usando el método de solicitud HTTP, ¡y obtuve los mismos resultados!)
Gracias,
Kirupa