Google Smart Home中的令牌交换请求出错

时间:2019-07-26 14:16:19

标签: actions-on-google google-smart-home

我正在关注此Google documentation,以使帐户与oauth关联。 在Exchange授权代码项中,按预期,我收到以下JSON:

{
   "client_id" : "*****",
   "client_secret" : "*****",
   "code" : "myauthorization_code",
   "grant_type" : "authorization_code",
   "redirect_uri" : "https://oauth-redirect.googleusercontent.com/r/****"
}

我的回答是:

{
    "access_token" : "myaccess_token",
    "expires_in" : 3600,
    "refresh_token" : "myrefresh_token",
    "token_type" : "Bearer"
}

但是我在iOS的Google助手应用中收到“出现问题,请稍后重试”的错误。 在stackdriver中,出现错误:

SYNC: Request ID 4417600193631747637 failed with code: OPEN_AUTH_FAILURE

1 个答案:

答案 0 :(得分:0)

根据您的示例,听起来您正在跳过一步。帐户关联过程包括两个步骤:

  1. 用户授权(用户登录其帐户)
  2. 令牌交换(服务器为授权用户返回令牌)

您似乎通过提供令牌直接响应了授权请求。授权请求应返回代表授权用户的唯一临时代码,该代码将传递回您的令牌交换端点以获取访问令牌。

您可以在documentation中了解有关如何与OAuth服务器实现帐户链接的更多信息。


测试帐户关联

您可以使用Google OAuth Playground来验证您的帐户关联实施是否正常运行。您可以通过以下方法配置此工具以测试端点:

  1. 打开设置齿轮,将 OAuth端点更改为自定义
  2. 从“操作”控制台输入您的授权和令牌URL
  3. 在“操作”控制台中输入您的客户端ID和机密

您将不会授权任何Google API,因此对于步骤1 ,您只需输入“设备”之类的内容,然后点击授权API 。您可以按照步骤2中的流程进行操作,以验证授权和令牌交换是否正常工作。该工具将报告流程中是否发生任何错误。