2016-03-30 6 views
1

Ich hatte ein Python-Skript, das ich für den Zugriff auf eine Google-Tabelle autorisiert hatte. Aber wenn jetzt, wenn ich es laufen, wirft es die Ausnahme:Ich konnte Google API mit Oauth2 nicht authentifizieren

oauth2client.client.AccessTokenRefreshError: invalid_client: The OAuth client was not found. 

Mein Auth-Code wie folgt aussieht:

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) 

ich nichts auf dem Konto geändert haben, so dass ich weiß nicht, warum es würde plötzlich aufhören zu arbeiten. Wenn ich mich an https://console.developers.google.com/apis/credentials anmelde, sehe ich, dass die App noch registriert ist. Wie kann ich dies diagnostizieren und seinen Zugriff wieder aktivieren? Googeln dieser Fehler findet leider Dutzende von möglichen Ursachen.

Antwort

0

Die Klasse SignedJwtAssertionCredentials ist seit dem 5. Februar 2016 removed from the source code und ihre Funktionalität wurde durch die von ServiceAccountCredentials ersetzt. Dies könnte Ihren Fehler verursachen.

Es scheint, dass Sie so etwas wie die folgenden erzeugen Ihre credentials verwenden werden wollen:

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

Diese Github issue thread könnte hilfreich sein, wie gut.

Verwandte Themen