我的Alexa技能有些问题。我希望对话能够像这样:
用户:' Alexa,开放派对'
Alexa:'你好,你的四位数密钥是什么?'
用户:' 1234'
Alexa:'确认,我能为您提供哪些帮助?'
但我对如何构建这个问题感到困惑。我需要使用用户的引脚并在我的代码库中验证它。我知道你不能让对话代表团在LaunchRequest
内工作。 LaunchRequest
无法自定义,因此我无法为其添加插槽。我无法在互联网上找到任何其他建议/示例。有没有人之前做过这个或者有什么建议吗?
答案 0 :(得分:0)
亚马逊支持account linking作为将用户与其他帐户相关联的方法。这允许用户在安装技能时使用OAuth登录其他帐户。虽然可以根据session object userid确定用户,但可能很难发布此类技能。
答案 1 :(得分:0)
事实证明,您无法将广告代码集合委托给LaunchRequest
内的Alexa,因为它不属于LaunchRequest
的有效response type。
我的初步逻辑是:
LaunchRequest
。 (此时我需要通过委托Alexa进行插槽收集来询问用户他们的引脚)LaunchRequest
中,使用this.emit(':getPinIntent');
进行即时回复,其中getPinIntent
是我的Alexa技能中存在的另一个意图。上面的代码是我在互联网上看到的如何调用另一个意图,而无需用户使用语音激励。getPinIntent
被调用并立即检查以查看是否所有必需的时隙都已填满(即插槽PIN
是否有值)。如果它们不是dialogState !== 'COMPLETED'
,那么我将插槽集合委托给Alexa。LaunchRequest
的有效响应类型,因此对于Alexa的委派不需要字段dialogueState
。 Alexa请求仍然是LaunchRequest
而不是Intent请求,因为用户没有通过向Alexa说些什么来调用intent。用户:" Alexa,开放派对"
Alexa:"你的销钉是什么" (alexa永远不会到这里,因为上面的#4和#5)
用户:"一二三四"
Alexa:"确认,我能为您提供哪些帮助?"
如果我犯了任何错误或错误的假设,请告诉我。
我现在的逻辑现在已经改变了。如果您不使用Skill Builder Beta,则可以使用一个插槽作为您的某个意图的话语。所以我现在getPinIntent
有一个名为{PIN}
的广告位和一个{PIN}
形式的话语。这样可以进行上述类型的对话,因为当用户说出他或她的回销时("一个二三四")它会启动getPinIntent
然后我可以继续或将对话委托给Alexa因为IntentRequest
对话框是有效的response type。
我现在唯一的问题是,因为我没有使用Skill Builder Beta,所以我无法(或者没有找到方法)将对话模型添加到我的Intent Schema中。我尝试在添加正确的对话模型后将JSON文本从Skill Builder Beta复制到我的Intent Schema中,但这总是会导致构建错误。
所以现在我可以完成用户的pin身份验证并使用"我如何帮助",但之后的IntentRequest可能需要委托给Alexa寻找插槽,这样就可以了导致崩溃,因为没有Skill Builder Beta我无法为委托插槽收集期间使用的Alexa添加适当的对话模型。