gdata - 未收到 Google OAuth 刷新 token

标签 gdata gdata-api access-token

我想从 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。 :)

  1. 转至显示有权访问您帐户的应用程序的页面: https://myaccount.google.com/u/0/permissions .
  2. 在“第三方应用”菜单下,选择您的应用。
  3. 点击“删除访问权限”,然后点击“确定”进行确认
  4. 您发出的下一个 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/

相关文章:

api - 如何在请求中使用从 Twitter OAuth 1.0a 获得的 "user context access token"?

gdata - 电子表格列表 Gdata OAuth2

python - 使用 gdata docs python v3.0 和 ocr 上传 pdf 文件

python - Google 文档 API 和 Python : How to change the owner of a document?

c# - 如何通过 C# GData API 按 key 请求单个电子表格?

ios - 如果用户在另一台设备上登录,则自动注销用户

oauth - eBay oauth token 和刷新 token

iphone - 通过gdata获取gmail的所有电子邮件和联系人

Javascript Array Scope - 这里是新手

ruby-on-rails - 将YouTube集成到Rails 3 App中的策略