Alexa,无法链接您的技能

问题描述 投票:9回答:5

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

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

  • Alexa应用程序可以打开我的身份验证网址。
  • 我可以通过重定向uri授权并提供授权代码。
  • Alexa使用先前提供的授权代码请求访问令牌。
  • 我能够使用访问令牌和刷新令牌验证授权代码和响应。
  • Alexa在这一步中未能与我的技能联系起来。它说'无法链接你的技能'。

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

alexa alexa-skills-kit alexa-skill alexa-voice-service
5个回答
2
投票

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

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

你需要将?改为#

EG

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


2
投票

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


0
投票

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


0
投票

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

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


0
投票

认为这可能有助于任何人想知道Alexa服务如何发布到他们的OAuth端点,因为它非常不透明且没有文档记录。重定向到Alexa服务会向定义的OAuth端点发起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

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

© www.soinside.com 2019 - 2024. All rights reserved.