Alexa Skill Development, выборка JSON Данные с URL с запросом. js - PullRequest
0 голосов
/ 03 марта 2020

Привет, спасибо за проверку моего вопроса. Я новая среда разработки Alexa. В настоящее время пытаюсь получить файл JSON из URL с помощью запроса. js

Я добавил пакет в пакет. json "request": "^2.88.2"

Запрос, который я не могу сказать из портала dev, если он работает, функция выглядит следующим образом:

const request = require('request');

request('http://www.google.com', function (error, response, body) {
  console.error('error:', error); 
  console.log('statusCode:', response && response.statusCode);
  console.log('body:', body);
});

не может заставить его вернуть то, что я вижу из консоли

1 Ответ

0 голосов
/ 10 марта 2020

Согласно npm, пакет request устарел , поэтому я бы не рекомендовал его использовать. Вместо этого вы можете использовать пакет node-fetch, например:

const JsonLoaderHandler = {
    canHandle(handlerInput) {
        return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
            && Alexa.getIntentName(handlerInput.requestEnvelope) === 'JsonLoaderIntent';
    },
    async handle(handlerInput) {
        const yourJsonData = await fetch('https://your-endpoint.com/')
            .then(r => r.json())
            .catch(e => console.log(e) /** error handling here */);

        if (yourJsonData) {
            /** logic here */
            return handlerInput.responseBuilder
                .speak(`JSON object loaded`)
                //.reprompt('add a reprompt if you want to keep the session open for the user to respond')
                .getResponse();    
        }

        return handlerInput.responseBuilder
            .speak(`Couldn't load a JSON object`)
            //.reprompt('add a reprompt if you want to keep the session open for the user to respond')
            .getResponse();
    }
};
...