首页 文章

Alexa,无法链接您的技能

提问于
浏览
8

我在Alexa中创建使用帐户链接的自定义技能 . 我使用OAuth2 php库创建了自己的身份验证服务器,并在技能配置中配置了授权URL和令牌URL .

当我尝试从Alexa移动应用程序进行帐户链接时,我收到错误“无法链接您的技能” . 以下是我的工作进展 .

  • Alexa应用程序可以打开我的身份验证网址 .

  • 我可以通过重定向uri授权并提供授权码 .

  • Alexa正在使用先前提供的授权码请求访问令牌 .

  • 我能够使用访问令牌和刷新令牌验证授权代码和响应 .

  • Alexa在此步骤中未能与我的技能联系起来 . 它说's '无法链接你的技能' .

我已经通过我的论坛了解相同,但无法找到究竟是什么问题 . 在这方面,请任何人帮助我 .

5 回答

  • 2

    我也遇到了同样的问题,通过为“客户端身份验证方案”选择“请求正文中的凭据”(默认为Http basic)来解决问题,因为我的案例中的访问令牌是在消息正文中发送的 . 检查服务器如何发送身份验证令牌 .

  • 0

    我的问题是最后的AccessToken调用 . 我假设它正在使用GET请求,所以我只在我的函数中提供这个 . 它实际上是在创建一个访问令牌 . 所以它正在使用POST .

    在我更新我的函数以使用帖子并以JSON格式返回AccessToken之后,一切正常 .

  • 0

    在我的情况下,问题在于客户端密码,在Google开发者控制台中添加您的技能重定向URI并重新检查您在alexa技能授权授权类型中提供的客户端密钥

  • 0

    认为这可能有助于任何人想知道Alexa服务如何发布到他们的OAuth endpoints ,因为它非常不透明且没有文档记录 . 重定向到Alexa服务会向定义的OAuth endpoints 发起POST请求,其中帖子正文为x-www-form-urlencoded格式而不是JSON . 所以POST看起来像这样 .

    POST /authentication/1/oauth HTTP/1.1 url.Values{} grant_type=authorization_code&code=XXXXXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https%253A%252F%252Fpitangui.amazon.com%252Fapi%252Fskill%252Flink%252FM9BEOG3DM65SQ&client_id=XXXXXXXXXXXXXXXXXXXXXX
    

    如果您的 endpoints 没有解析此数据或期望某些格式可以轻松解组,那么它可能会失败并返回406响应 .

  • 2

    如果您的重定向链接目前是:

    https://layla.amazon.com/api/skill/link/xxxxxxxxxxxxxx?code=xxxxxxxxx&state=xxxxx

    您需要将 ? 更改为 #

    例如

    https://layla.amazon.com/api/skill/link/xxxxxxxxxxxxxx#code=xxxxxxxxx&state=xxxxx

相关问题