我正在使用lambda创建技能,在hello world示例中使用相同的逻辑。有可能得到用户说的话吗?在文字?
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntentHandler';
},
async handle(handlerInput) {
const speechText = 'Hello World!';
return handlerInput.responseBuilder
.speak(speechText)
//.reprompt('add a reprompt if you want to keep the session open for the user to respond')
.getResponse();
}
};
Alexa不提供文本中的完整用户输入。因此,获得用户所说内容的唯一方法是使用插槽。了解如何使用Intents with Slots here。
以下是可用于帮助Alexa从用户输入中提取所需值的不同类型的插槽(slotTypes
)。 List of Slot Types。
如果您不知道要从用户获取的特定数据类型,则可以使用插槽类型AMAZON.SearchQuery
来捕获短语和句子。
然后它应该将至少更多的用户输入(如Alexa所理解的那样)作为文本传递到该插槽中。
当您考虑用户可能会询问的内容时,请考虑使用内置或自定义插槽类型来捕获更可预测的用户输入,并使用AMAZON.SearchQuery插槽类型来捕获构成搜索查询的不太可预测的输入。