6

我正在关注这个例子

https://code.google.com/p/google-api-python-client/source/browse/samples/service_account/tasks.py

  credentials = SignedJwtAssertionCredentials(
      '141491975384@developer.gserviceaccount.com',
      key,
      scope='https://www.googleapis.com/auth/tasks')
  http = httplib2.Http()
  http = credentials.authorize(http)

  service = build("tasks", "v1", http=http)

  # List all the tasklists for the account.
  lists = service.tasklists().list().execute(http=http)
  pprint.pprint(lists)

问题是,它有时会起作用,我将列表作为 JSON 获取,并且在多次运行程序后出现错误

  File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 710, in _do_refresh_request
    raise AccessTokenRefreshError(error_msg)
oauth2client.client.AccessTokenRefreshError: invalid_grant
4

3 回答 3

0

您是在虚拟机或沙盒环境中运行此代码吗?如果是这样,可能只是您的 VM 的时钟未与您的主机同步。在此处查看对类似问题的回复。

我遇到了同样的(令人沮丧的)问题,发现只需重新启动我的虚拟机(确保时间与主机同步(或至少设置为本地时区)即可解决问题。

于 2014-11-05T04:06:33.903 回答
0

我是 Google Drive 界面,但发现了同样的错误。在Issue 160中有一个关于在本地计算机上设置适当时间的报告。自从我升级到 Mac Mavericks 后,我发现我需要不断更新我的系统时间。我收到了您报告的错误,将我的系统时间设置回当前,我消除了错误。

于 2014-01-12T23:43:09.947 回答
0

Oauth 服务高度依赖时间,请确保您的客户端使用 NTP 或其他时间同步机制。

使用 curl -I https://docs.google.com/进行测试;日期-u

您应该看到相同的日期:(或几秒钟内)才能正常工作

于 2015-09-02T21:46:42.040 回答