여러분 안녕하세요!
해석하기 어려운 이상한 문제들을 겪고 있습니다. Discourse API를 사용하여 사용자가 로그인 없이 게시물을 게시할 수 있도록 하고 있습니다. 보안상의 이유로 이 코드는 서버 환경에서 실행할 예정이며, 선택한 환경은 Node.js 기반의 Firebase Cloud Functions입니다.
전체 코드는 다음과 같습니다:
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));
});
});
fetch 코드를 단독으로 실행할 때 게시물이 정상적으로 생성되므로 이 코드가 동작한다는 점에는 확신을 가지고 있습니다. 그러나 functions 환경에서 실행할 때 "Internal Server Error"가 발생합니다. 로그를 확인해 보면 "Finished with status: crash"라고 나옵니다.
여기서 무엇이 잘못되었을지 의견이 있으신 분이 계신가요? Firebase functions를 통해 게시물 생성을 성공적으로 수행해 본 분이 있으신가요?
(cc @blake - HTTP 요청 방법을 사용하여 Node.js 접근 방식을 따랐고, 동일한 결과를 얻었습니다!)
감사합니다,
Kirupa