自2016年2月5日起,类
我有一个Python脚本,我已经授权访问谷歌电子表格。但现在当我运行它时,它抛出了一个异常:
oauth2client.client.AccessTokenRefreshError: invalid_client: The OAuth client was not found.
我的身份验证代码看起来像:
import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials
json_key = json.load(open('myapp-credentials.json'))
scope = ['https://spreadsheets.google.com/feeds']
credentials = SignedJwtAssertionCredentials(
json_key['client_email'],
json_key['private_key'], scope)
gc = gspread.authorize(credentials)
我没有更改帐户中的任何内容,所以我不知道为什么它会突然停止工作。如果我登录到https://console.developers.google.com/apis/credentials,我看到该应用程序仍在注册中。如何诊断并重新启用其访问权限?不幸的是,在谷歌上搜索这个错误会发现几十个潜在的原因。
SignedJwtAssertionCredentials
已从源代码中删除,其功能已替换为ServiceAccountCredentials
。这可能是您出错的原因。
看来您需要使用以下内容来生成credentials
:
credentials = ServiceAccountCredentials.from_json_keyfile_name('myapp-credentials.json', scope)
这个Github问题线程可能也会有所帮助。