我正在使用lambda来创建技能,这与您好世界示例中的逻辑相同。有可能得到用户所说的话吗?在文字中?
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();
}
};
答案 0 :(得分:1)
Alexa没有以文本形式提供完整的用户输入。因此,获得用户所说的唯一方法是使用插槽。了解如何使用 Intents with Slots here 。
以下是不同类型的插槽(slotTypes
),可用于帮助Alexa从用户输入中提取所需的值。 List of Slot Types 。
如果您不知道要从用户那里获取的特定数据类型,则可以使用广告位类型AMAZON.SearchQuery
来捕获短语和句子。
然后,它应该将至少更多的用户输入(如Alexa所理解的)作为文本传递到该插槽中。
在考虑用户可能会问的问题时,请考虑使用内置或自定义广告位类型来捕获更可预测的用户输入,并使用AMAZON.SearchQuery广告位类型来捕获构成广告的较难预测的输入。搜索查询。