验证oauth请求时出现invalid_grant错误 - Google云端硬盘

时间:2016-03-28 16:11:10

标签: python google-drive-api oauth2

我正在尝试访问客户的Google云端硬盘以下载他们的文件。在我自己的谷歌硬盘上测试代码时,我能够成功下载文件。但是,当我从他们那里得到oauth代码时,我收到错误:

oauth2client.client.FlowExchangeError: invalid_grant

在查看其他一些答案后,建议您确保access_type =' offline',这似乎是默认设置,我可以在生成的url中看到此参数已设置。它听起来像他们回馈的代码可能只有一个小时有效,但我试图在一小时内使用它仍然没有运气。关于如何避免这个问题的任何其他建议?

以下是我一直在运行的代码:

from oauth2client import client
import webbrowser

flow = client.flow_from_clientsecrets(
  'client_secrets.json',
  scope='https://www.googleapis.com/auth/drive.readonly',
  redirect_uri='urn:ietf:wg:oauth:2.0:oob')

auth_uri = flow.step1_get_authorize_url()
webbrowser.open(auth_uri)

print auth_uri

auth_code = raw_input('Enter the auth code: ')

credentials = flow.step2_exchange(auth_code)
http_auth = credentials.authorize(httplib2.Http())

flow.step2_exchange行出错。

1 个答案:

答案 0 :(得分:0)

我知道这个错误有三个标准原因。

  1. 您的电脑上的时间已经过了。 解决方案:检查一下。
  2. 您尝试使用身份验证代码一次。 您只能使用一次身份验证代码来获取刷新令牌。
  3. 您正在测试和验证代码一次。每次验证代码时,都会获得有效的刷新令牌。您最多可以获得25个刷新令牌,然后他们就会停止工作。 解决方案:确保每次刷新访问权限时都使用该刷新令牌,而不是旧刷新令牌。
  4. 此外,谷歌作为一个Python教程,向您展示如何使用Python客户端库访问驱动器,它可以使您更轻松。 Python QuickStart