无法使用Oauth2对Google API进行身份验证



我有一个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,我看到该应用程序仍在注册中。如何诊断并重新启用其访问权限?不幸的是,在谷歌上搜索这个错误会发现几十个潜在的原因。

自2016年2月5日起,类SignedJwtAssertionCredentials已从源代码中删除,其功能已替换为ServiceAccountCredentials。这可能是您出错的原因。

看来您需要使用以下内容来生成credentials:

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

这个Github问题线程可能也会有所帮助。

相关内容

  • 没有找到相关文章

最新更新