【发布时间】:2021-12-31 00:48:42
【问题描述】:
我正在尝试使用 ASK node.js SDK 开发 Alexa Skill。我正在尝试构建一个 Alexa 和用户轮流计数的游戏(不是一个很棒的游戏,但对我来说很有教育意义)。 Alexa 从 1 开始,然后是用户 2,然后 Alexa 说 3,依此类推,直到用户说出错误的数字。在这种情况下,我希望实现逻辑来结束游戏。我正在努力弄清楚如何让 Alexa 在每次用户说出一个数字后做出不同的响应。这是我需要多个意图处理程序的情况吗?这似乎很愚蠢,因为一般逻辑不会改变。我一般都在努力寻找最新的游戏逻辑示例代码,所以我可以从中学习的任何资源将不胜感激。我目前的代码如下--
const MyGameIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'MyGameIntent';
},
handle(handlerInput) {
const speechText = 'One';
return handlerInput.responseBuilder
.speak(speechText).listen()
.getResponse();
}
};
显然,我还没有走多远。我已经成功创建了一个意图并测试了当我要求开始游戏时 Alexa 会以“一个”响应。我被卡住的地方是如何让 Alexa 说“一”,然后等待用户说“二”,根据他们说的数字是否正确,Alexa 会说“三”或“游戏结束”并结束游戏。 ASK 的 Codecademy 课程使用不同且过时的语法,但它是我迄今为止最接近答案的。它建议在说话后链接.listen(),但没有提供有关此.listen() 是否会重新提示相同意图处理程序的信息
【问题讨论】:
标签: node.js alexa alexa-skill alexa-voice-service alexa-app