我想从 Google 获取访问 token 。 The Google API says要获取访问 token ,请将代码和其他参数发送到 token 生成页面,响应将是一个 JSON 对象,如下所示:
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
但是,我没有收到刷新 token 。我的案例的响应是:
{
"access_token" : "ya29.sddsdsdsdsds_h9v_nF0IR7XcwDK8XFB2EbvtxmgvB-4oZ8oU",
"token_type" : "Bearer",
"expires_in" : 3600
}
最佳答案
refresh_token
仅在用户首次授权时提供。后续授权(例如您在测试 OAuth2 集成时进行的授权)将不会再次返回 refresh_token
。 :)
- 转至显示有权访问您帐户的应用程序的页面: https://myaccount.google.com/u/0/permissions .
- 在“第三方应用”菜单下,选择您的应用。
- 点击“删除访问权限”,然后点击“确定”进行确认
- 您发出的下一个 OAuth2 请求将返回
refresh_token
(前提是它还包含“access_type=offline”查询参数。
或者,您可以将查询参数 prompt=consent&access_type=offline
添加到 OAuth 重定向(请参阅 Google 的 OAuth 2.0 for Web Server Applications 页面)。
这将提示用户再次授权应用程序,并且始终返回 refresh_token
。
关于gdata - 未收到 Google OAuth 刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10827920/