Alexa a/c 链接自定义技能和令牌刷新说明

Alexa a/c linking for custom skill and token refresh clarification

我们已使用 "Authorization Code Grant" 选项为我们的 Alexa 自定义技能配置 a/c 链接。链接工作正常,但只是想澄清一些事情 -

1) 在 a/c 链接设置中,我们有一个选项 "Default Access Token Expiration Time"。 Alexa 是否以此处指定的时间间隔自动刷新访问令牌?

2) 如果我完成 a/c 链接后保持空闲状态,即长时间(2 周)不使用我的 Alexa 设备。它会继续按指定的时间间隔刷新我的令牌,还是仅在我们使用设置时刷新?

3) 在刷新令牌时,我认为 Alexa 期望授权服务器在 4.5 秒内做出响应。如果授权服务器在尝试刷新令牌时由于某种原因关闭,它会一直尝试直到收到新的访问令牌,还是在重试几次后停止?

如有任何意见,我们将不胜感激。

  1. 不,Alexa 不会自动刷新访问令牌,只有当用户访问您的技能并且 access_token 已过期并具有 refresh_token 时才会自动刷新。此外,如果身份提供者不 return expires_in.

  2. ,则使用 Default Access Token Expiration Time 中指定的值
  3. 仅当用户访问您的技能且 access_token 已过期且具有 refresh_token.

  4. 是的,只要之前提供了 refresh_token 并且用户没有禁用并重新启用您的技能。

Google:由于 Google 的 oauth 架构,refresh_token 仅在用户首次授权时提供。如果您在同一个帐户上多次授权(例如,在测试时),该特定帐户不会 return 一个 refresh_token,所以当我们的服务请求一个时,none 是 return编辑。也有可能您在从 google 进行查询时没有设置 access_type=offline,这意味着您没有请求刷新令牌。要修复任何特定帐户以使用刷新令牌,请转到 https://www.google.com/settings/u/1/security 并撤销您应用的访问权限。那么下次认证时会视为第一次认证,技能应该会再次正常刷新。

来自https://forums.developer.amazon.com/articles/38610/alexa-debugging-account-linking.html