我正在关注这个例子
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
答案 0 :(得分:0)
我正在使用Google云端硬盘,但发现了同样的错误。在Issue 160中有一份报告,说明在本地计算机上设置适当的时间。自从我升级到Mac Mavericks后,我发现我需要不断更新系统时间。我收到了您报告的错误,将我的系统时间设置回当前状态并消除了错误。
答案 1 :(得分:0)
您是在VM或沙盒环境中运行此代码吗?如果是这样,可能只是因为您的VM时钟未与主机同步。查看对类似问题的回复here。
我遇到了同样(令人沮丧)的问题,发现只是重新启动我的VM(确保时间与主机同步(或至少设置为本地时区)解决了问题。
答案 2 :(得分:0)
Oauth服务高度依赖于时间,确保您的客户端使用NTP或其他时间同步机制。
用curl -I https://docs.google.com/测试; date -u
您应该看到相同的日期:(或几秒钟内)才能使用