Я создаю собственный навык Alexa с помощью Node.js (в котором я новичок). У меня настроен навык, создано ОДНО настраиваемое намерение и ОДИН настраиваемый слот с некоторыми тестовыми значениями. Моя цель состоит в том, чтобы мой пользователь открыл навык и задал такой вопрос, как "как далеко находится {slotname}", где название слота содержит два значения "Sun" и "Moon", и в зависимости от того, что пользователь спрашивает, мои навык вернет соответствующий ответ. Пример:
Пользователь: «Как далеко находится Солнце» Алекса: «Солнце находится почти в девяноста трех миллионах миль от Земли» Пользователь: «Как далеко находится Луна» Алекса: «Луна находится прямо по улице»
Моя проблема: хотя концепция имеет смысл, я не знаю, как на самом деле применить это к моему коду. Приношу свои извинения, я новенький.
Последние несколько ночей я провел, пытаясь найти похожие сообщения людей, у которых была аналогичная проблема с Node.js. Я попытался найти примеры кодирования, которые могли бы помочь мне сориентироваться, просмотрел видео и т. Д. Пока ничего не помогло, что привело к этому - моему первому посту на Stack Overflow. Так что я надеюсь, что вы, милые люди, можете помочь, и я включил текущее состояние моих кротких попыток ниже.
P.S. Я совершенно не знаком с публикациями на S.O. Если я сделал что-то не так, дайте мне знать! Я просто не знала, куда еще обратиться за помощью.
const MyIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'MyIntent';
},
handle(handlerInput) {
//var bigObect = this.event.request.intent.slots.slotName.value;
var bigObject = handlerInput.requestEnvelope.request.intent.slots.slotName.value;
var speakOutput;
if(bigObect === 'Sun') {
speakOutput = 'The sun is almost ninety three million miles away from Earth.';
} else if(bigObject === 'Moon') {
speakOutput = 'The moon is across the street.';
}
return handlerInput.responseBuilder
.speak(speakOutput)
//.reprompt('add a reprompt if you want to keep the session open for the user to respond')
.getResponse();
}
};