#node.js #alexa #alexa-skills-kit #alexa-skill
#node.js #alexa #alexa-skills-kit #alexa-навык
Вопрос:
Если у меня есть следующий код в моем намерении, все отлично…
handle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
const responseBuilder = handlerInput.responseBuilder;
let sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
let say = 'Hello. ';
let slotStatus = '';
let resolvedSlot;
let slotValues = getSlotValues(request.intent.slots);
slotStatus = "I heard you say " slotValues.query.heardAs;
say = slotStatus;
return responseBuilder
.speak(say)
.reprompt('try again, ' say)
.getResponse();
},
В тот момент, когда я пытаюсь выполнить исходящий вызов, я получаю сообщение об ошибке, и я не могу понять, почему.
async handle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
const responseBuilder = handlerInput.responseBuilder;
let sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
let say = 'Hello. ';
let slotStatus = '';
let resolvedSlot;
let slotValues = getSlotValues(request.intent.slots);
slotStatus = "I heard " slotValues.query.heardAs;
const response = await httpGet(slotValues.query.heardAs);
slotStatus = "I heard " response.heard " from the server.";
say = slotStatus;
return handlerInput.responseBuilder
.speak(say)
.reprompt("try again. " say)
.getResponse();
},
метод HttpGet приведен ниже…
function httpGet(query) {
return new Promise(((resolve, reject) => {
var options = {
host: 'www.hostname.app',
port: 443,
path: '/api/alexa.php?' query,
method: 'GET',
};
const request = https.request(options, (response) => {
response.setEncoding('utf8');
let returnData = '';
response.on('data', (chunk) => {
returnData = chunk;
});
response.on('end', () => {
resolve(JSON.parse(returnData));
});
response.on('error', (error) => {
reject(error);
});
});
request.end();
}));
}
Комментарии:
1. если вы запустите код HttpGet как отдельную функцию вне вашей функции alexa, что он вернет?
Ответ №1:
Вам следует просмотреть журналы CloudWatch для вашего AWS Lambda на предмет сообщений об ошибках.
Кроме того, вы можете запускать и отлаживать свой навык локально с помощью node.js , CLI ASK и плагин для VS Code. Несколько дней назад я провел презентацию для группы Alexa Community India и рассказал, как это настроить и использовать.
Комментарии:
1. На самом деле это не ответ, но вопрос пока не дает достаточной информации