Я создал небольшой сервер, используя NodeJS / Express, и я использую функцию извлечения узла для взаимодействия с SurveyMonkeys API. В настоящее время у меня есть два опроса на моем счете, которые я могу просмотреть через их коллекцию Почтальона. Но когда я пытаюсь использовать свои собственные конечные точки, это, похоже, не работает. Запрос GET для просмотра всех опросов возвращает код состояния «200», но отвечает:
{
"size": 0,
"timeout": 0
}
Запрос POST для создания опроса дает мне код состояния «400», но возвращает то же самое ответ. Вот мой код.
const router = require("express").Router();
const fetch = require("node-fetch");
const TOKEN = process.env.SM_ACCESS_TOKEN;
const BASEURL = process.env.SM_BASEURL;
const options = method => ({
headers: {
Authorization: `Bearer ${TOKEN}`,
"Content-Type": "application/json",
method: method
}
});
/*
GET a list of surveys
*/
router.get("/", async (req, res) => {
try {
const surveys = await fetch(`${BASEURL}surveys`, options("GET"));
console.log(surveys);
if (surveys) {
return res.status(200).json(surveys);
}
} catch (err) {
console.log(err);
res.status(500).send({ message: "Server error", err });
}
});
router.post("/create-survey", (req, res) => {
const surveyData = req.body;
fetch(`${BASEURL}surveys`, {
method: "POST",
body: surveyData,
headers: {
Authorization: `bearer ${TOKEN}`,
"Content-Type": "application/json"
}
})
.then(data => {
return res.status(data.status).json(data);
})
.catch(err => console.log(err));
});
module.exports = router;
Дополнительная информация: я могу выполнить все эти действия, используя коллекцию POSTMAN, предоставленную SurveyMonkey, с моим токеном доступа. BASEURL = "https://api.surveymonkey.com/v3/". ServeyData = {"title": "Some Title"}