使用Jovo开发Alexa技能时如何正常显示账号绑定卡片
配置校验
- 首先确认Alexa开发者控制台的技能账号绑定配置选择的是授权码授权模式,Auth0侧的授权地址、令牌地址、客户端ID、密钥、允许的回调地址都和配置要求一致,scope项需按需求正确填写,配置不匹配是账号绑定卡片无法正常弹出的最常见原因。
- 目前Alexa强制要求账号绑定流程使用PKCE校验,你需要提前在Auth0后台开启PKCE支持,生成符合要求的
code_challenge后再触发绑定流程。
代码调整
你当前使用的showAccountLinkingCard()仅能触发Alexa app发送通知卡片,要直接调起内置身份验证webview,需要发送Alexa官方的授权启动指令,调整后的代码如下:
if (!this.$request.getAccessToken()) { return this.alexaSkill() .addDirective({ type: 'Alexa.Authorization.Grant', payload: { grantType: 'OAuth2.AuthorizationCode', codeChallenge: 'YOUR_GENERATED_CODE_CHALLENGE', // 替换为你生成的PKCE校验码 codeChallengeMethod: 'S256' } }) .tell('请完成账号绑定以继续使用功能'); }
测试注意事项
自动调起webview的功能仅在最新版Alexa移动端App、带屏Alexa硬件设备上生效,开发者控制台的网页模拟器不会触发该流程,需要使用真机进行测试。
内容的提问来源于stack exchange,提问作者curiosopher
相关产品推荐
相关产品推荐

