SurveyMonkey API Создайте опрос, используя NodeJS - PullRequest
0 голосов
/ 11 января 2020

Я создал небольшой сервер, используя 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"}

1 Ответ

0 голосов
/ 11 января 2020

Решил эту проблему, отключив извлечение узла и вместо этого используя топор ios. Я думаю, это может быть запрос fetch vs xhr.

...