Verwenden von OAuth2 mit Dienstkonto für gdata in Python

8

Ich möchte data.photos.service.PhotosService verwenden, um Fotos aus Picasa zu pushen und zu ziehen. Ich habe eine Serviceschlüsseldatei XXXXXXXX-privatekey.p12 von der Google-Konsole erhalten und versuche nun, diesen Schlüssel mit Google zu authentifizieren.

Die Dokumentation für OAUTH2, die appengine verwendet, hat mich zu der Annahme verleitet, dass die Verwendung des Folgenden nützlich wäre:

%Vor%

Das Problem ist, dass entweder Methode 1 mit SetOAuthInputParameters ein ungültiges Token zurückgibt oder Methode 2 eine 403 restricted zurückgibt.

Ich bin am Ende meiner Weisheit und lese Berge von Code durch, die alle regelmäßig dreibeinigen OAUTH machen, wenn ich es wirklich und wirklich nicht so machen will. Irgendwelche Ideen / Artikel, die ich noch nicht gesehen habe?

    
Nielsvh 15.04.2013, 23:26
quelle

2 Antworten

19

Verwenden Sie gdata.gauth.OAuth2TokenFromCredentials.

%Vor%

OAuth2TokenFromCredentials unterstützt Sie bei der gleichzeitigen Verwendung von apiclient und gdata. Unter dem Deckblatt verwendet es die Anmeldeinformationen, um sicherzustellen, dass es die Authentifizierungsinformationen hat, die es benötigt, um gdata-Aufrufe durchzuführen.

Beachten Sie, wenn Sie immer noch 403 erhalten, kann es etwas ganz anderes sein. Ich habe ein Dienstkonto verwendet, um auf die Daten eines Benutzers zuzugreifen, und erhielt 403, weil ich den Benutzer beim Aufruf von SignedJwtAssertionCredentials nicht ordnungsgemäß angegeben hatte.

UPDATE: Hier ist das Grundmuster, das ich benutzt habe:

%Vor%     
David K. Hess 22.08.2013, 15:01
quelle
0

Wenn Sie MFA in Ihrem Google-Konto verwenden, müssen Sie die Bestätigungsbildschirm-Authentifizierungsmethode verwenden. Mit Picassa API funktioniert es nicht wie es ist, da die Anfrage-API etwas anders ist.

%Vor%     
tardyp 08.09.2017 20:55
quelle