Алекса Скилл с приветствием - PullRequest
0 голосов
/ 08 января 2020

Здравствуйте, я пытаюсь использовать cheerio в навыке Alexa, чтобы получить данные с сайта и добавить навык. Код намерения

const HelloWorldIntentHandler = {
canHandle(handlerInput) {
    return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
        && Alexa.getIntentName(handlerInput.requestEnvelope) === 'all_titles';
},
handle(handlerInput) {
    //Lógica para speak output
    var options = {
        uri: 'https://es.pagetest.com/',
        transform: function (body) {
            return cheerio.load(body);
        }
    };

    rp(options)
    .then(function ($) {
        var arr_response = []
        var titles = $('.ms-short-title');
        titles.each((i, a) =>{
            if(a.parent.attribs.title !== undefined)arr_response.push(a.parent.attribs.title);
        });

        const speakOutput = insert_in_string(arr_response);

        return handlerInput.responseBuilder
            .speak(speakOutput)
            //.reprompt('add a reprompt if you want to keep the session open for the user to respond')
            .getResponse();
        function insert_in_string (arr_titulars){
            var string_text = '';
            for(var titular of arr_titulars){
                string_text += titular + ' Siguiente titular. ';
            }
            return string_text;
        }
    })
    .catch(function (err) {
        return err;
    });

}

};

Я протестировал logi c локально, и он работает нормально, поместив его в редактор кода alexa, в тесте, возвращает сообщение об ошибке, но не след ¿Есть идеи? Спасибо

1 Ответ

1 голос
/ 09 января 2020

Если вы используете навыки, размещенные в Alexa, у вас уже будет встроенная интеграция с CloudWatch. Просто go перейдите на консоль разработчика Amazon, перейдите на вкладку Код вашего навыка, прокрутите вниз и нажмите ссылку Журналы: Amazon CloudWatch в левом нижнем углу.

Теперь, каждый раз, когда вы console.log, оно будет отправлено в CloudWatch. Итак, в вашем обработчике catch добавьте console.log(err), и вы сможете увидеть, что происходит не так.

Этот пост в блоге также может помочь: https://developer.amazon.com/blogs/alexa/post/71ac4c05-9e33-41d2-abbf-472ba66126cb/3-tips-to-troubleshoot-your-custom-alexa-skill-s-back-end

...