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

时间:2016-03-30 18:04:41

标签: python google-api google-api-python-client

我有一个Python脚本,我已授权他访问Google电子表格。但是当我运行它时,它会引发异常:

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,我会看到该应用仍然已注册。如何诊断并重新启用其访问权限?谷歌搜索这个错误不幸发现了许多潜在的原因。

1 个答案:

答案 0 :(得分:0)

自{2016年2月5日起,课程SignedJwtAssertionCredentialsremoved from the source code,其功能已替换为ServiceAccountCredentials。这可能会导致您的错误。

您似乎希望使用以下内容生成credentials

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

Github issue thread也可能有所帮助。