Gspread 访问 google 电子表格:HttpAccessTokenRefreshError,JWT 无效

Gspread to access google spreadsheet: HttpAccessTokenRefreshError, invalid JWT

我正在努力使用 gspread 访问带有 python 2.7 的 google 电子表格。

这是我目前的情况:

import gspread
from oauth2client.service_account import ServiceAccountCredentials



scope = ['https://spreadsheets.google.com/feeds']

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    'credentials.json', scope)

gc = gspread.authorize(credentials)

wks = gc.open("PracticeOpsBS").sheet1

结果是一堆我认为正在向我展示发生了什么的东西,结果如下:

"HttpAccessTokenRefreshError: invalid_grant: Invalid JWT Signature."

最终我希望从该工作表的两个选项卡访问信息以进行一些分析,但无法将数据从 google 提取到 python。感谢任何帮助,我会尽可能回答任何澄清问题!

看来这是我使用的 oauth2client 版本的问题。为了让事情正常进行,我降级到 oauth2client 版本 1.5.1。然后我使用以下方法访问电子表格:

import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials

json_key = json.load(open('credentials.json'))
scope = ['https://spreadsheets.google.com/feeds']

credentials = SignedJwtAssertionCredentials(
    json_key['client_email'], json_key['private_key'], scope)


gc = gspread.authorize(credentials)

wks = gc.open('PracticeOpsBS')