【问题标题】:python gspread oauth2client.client.HttpAccessTokenRefreshError: invalid_grantpython gspread oauth2client.client.HttpAccessTokenRefreshError: invalid_grant
【发布时间】:2016-04-24 09:05:39
【问题描述】:

根据下面的帖子#244来认证凭证我们可以定义GOOGLE_APPLICATION_CREDENTIALS环境变量来直接认证。

这是我在代码中所做的。

import gspread
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
credentials.create_scoped(['https://spreadsheets.google.com/feeds'])
gc = gspread.authorize(credentials)
wks = gc.open("hello").sheet1

但是当我运行它时,它会引发 oauth2client.client.HttpAccessTokenRefreshError: invalid_grant

关于如何解决此问题的任何建议?

谢谢,

【问题讨论】:

    标签: python oauth-2.0 gspread


    【解决方案1】:

    这可能是服务器时间的问题(运行“日期”命令)。我建议在你的服务器上设置 NTP 让它自动更新时间。

    CentOS NTP http://www.cyberciti.biz/faq/howto-install-ntp-to-synchronize-server-clock/

    Ubuntu NTP https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-12-04

    【讨论】:

    • 嗨@Robert,我认为这不是时间问题。当我运行 date 命令时,没有任何问题。上面的代码可以在你的系统中工作吗?
    • 是的。我更新了服务器上的 NTP 并更新了时间。它解决了这个特定问题。
    • 我已经发现了这里的问题。我首先遇到了 SpreadsheetNotFound 异常,然后我将自己的电子邮件添加到了我的凭证文件中的 client_email 条目中,这导致了这个问题。相反,我应该与凭证文件中列出的客户电子邮件地址共享我的电子表格。
    • 很高兴你知道了
    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 2020-04-14
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多