提交Alexa Skill时如何实现返回Account Linking卡片功能?
解决Alexa Skill未关联账户时返回Account Linking卡片的问题
我帮你调整现有代码,刚好能实现你需要的账户关联卡片返回功能,同时还能保留原有代码的灵活性:
首先,更新你的buildSpeechletResponse函数,让它支持传入可选的卡片配置,这样既不影响原有逻辑,又能新增账户关联场景的处理:
function buildSpeechletResponse(outputText, shouldEndSession, card) { const response = { outputSpeech: { type: "PlainText", text: outputText }, shouldEndSession: shouldEndSession }; // 如果传入了卡片配置,就添加到响应中 if (card) { response.card = card; } return response; } function buildResponse(sessionAttributes, speechletResponse) { return { version: "1.0", sessionAttributes: sessionAttributes, response: speechletResponse }; }
然后,当检测到用户未关联账户时,调用这个函数生成带LinkAccount卡片的响应即可:
// 用户未关联账户时的响应逻辑 context.succeed( buildResponse({}, buildSpeechletResponse( "Please go to your Alexa app and link your account.", false, { type: "LinkAccount" } // 传入账户关联卡片配置 ) ) )
简单说明
- 修改后的
buildSpeechletResponse新增了可选的card参数,后续需要普通Simple卡片时,也能传入对应配置,不用重构原有代码; - 传入
{ type: "LinkAccount" }作为卡片参数后,生成的响应结构完全符合你提供的目标JSON格式; - 提示文本改成了符合审核要求的账户关联引导内容。
内容的提问来源于stack exchange,提问作者raman bhayana
相关产品推荐
相关产品推荐

