【问题标题】:Retrieving refresh token using oauth2 on Google Contacts API version 3.0在 Google Contacts API 3.0 版上使用 oauth2 检索刷新令牌
【发布时间】:2012-04-22 15:58:16
【问题描述】:

我正在使用 oauth2(node.js 和 connect-oauth 库)连接到 google contacts API version 3.0

这样做,我会得到如下响应:

{ access_token : "...",
"token_typen": "Bearer",
"expires_in" : 3600,
"id_token": "..." }

我缺少用于在后者过期后立即获取新访问令牌的刷新令牌。

oauth2 的选项

{ host: 'accounts.google.com',
  port: 443,
  path: '/o/oauth2/token',
  method: 'POST',
  headers: 
   { 'Content-Type': 'application/x-www-form-urlencoded',
     Host: 'accounts.google.com',
     'Content-Length': 247 } }

后正文 'redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback&grant_type=authorization_code&client_id=CLIENTID&client_secret=CLIENTSECRET&type=web_server&code=4%2F3gbiESZTEOjiyFPLUhKfE_a_jr8Q'

注意:我尝试将approval_prompt=force 从similar question 添加到request-post_body,但这导致了错误

{ statusCode: 400, data: '{\n  "error" : "invalid_request"\n}' }

【问题讨论】:

    标签: javascript node.js google-api oauth-2.0 google-contacts-api


    【解决方案1】:

    注意:我尝试将来自类似问题的approval_prompt=force 添加到request-post_body 中,但这导致了错误

    当您请求令牌时,您不需要 approval_prompt 参数。 *approval_prompt* 参数用于授权部分。


    我缺少刷新令牌...

    您不会获得 *refresh_token* 的唯一方法是:

    所以,尝试在授权码请求中添加:access_type=offline

    编辑

    即:

    https://accounts.google.com/o/oauth2/auth?client_id=**your_client_id**&scope=https://www.googleapis.com/auth/plus.me&redirect_uri=http://localhost&response_type=code&access_type=offline
    

    如果您收到 400 是因为您添加了无效参数或缺少参数。

    祝你好运!

    【讨论】:

    • 感谢您的回答。不幸的是,这也不起作用。我收到一个错误:{ statusCode: 400, data: '{ "error" : "invalid_request"}' }.
    【解决方案2】:

    有一次我这样做是为了测试——我已经从应用程序中删除了谷歌授权令牌——所以它试图获取另一个授权令牌,但没有刷新令牌。

    因此,请检查您正在测试的应用程序是否未授权用于您正在测试的帐户(这有意义吗?)

    【讨论】:

    • Google 只会给你一次刷新令牌。在初始身份验证之后,您只会获得访问令牌。如果您(或您的用户)通过访问 accounts.google.com/b/0/IssuedAuthSubTokens 并从头开始重新启动身份验证序列来删除访问权限,您可以获得新的刷新令牌。
    猜你喜欢
    • 2016-08-03
    • 1970-01-01
    • 2014-12-04
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2017-05-12
    • 1970-01-01
    相关资源
    最近更新 更多