Google-Kontakte importieren mit oauth2.0

8

Welche Möglichkeiten zum Importieren von Google-Kontakten mit Python und oauth2.0 gibt es?

Wir haben erfolgreich Anmeldeinformationen erhalten, und unsere Anwendung fordert Zugriff auf Kontakte, aber nach Erhalt der Anmeldeinformationen kann ich keine Möglichkeit finden, Kontakte API zu entdecken.

Dinge wie:

%Vor%

Gibt uns UnknownApiNameOrVersion Ausnahme. Es sieht so aus, als wäre die Kontakte-API nicht in der Liste der unterstützten APIs für apiclient enthalten.

Ich suche nach alternativen Wegen.

    
Nikolay Fominyh 17.04.2012, 09:40
quelle

2 Antworten

20

Die Google Kontakte-API kann nicht mit der google-api-python-client -Bibliothek verwendet werden, weil dies der Fall ist ein Google Data API , während google-api-python-client für die Verwendung mit discoverybasierte APIs .

Anstatt alle von @NikolayFominyh beschriebenen Probleme zu behandeln, können Sie die native Unterstützung für OAuth 2.0 verwenden in gdata-python-client .

Um ein gültiges Token zu erhalten, folgen Sie den Anweisungen eines Google Developers Blogpost für eine detaillierte Beschreibung des Prozesses.

Erstellen Sie zuerst ein Token-Objekt:

%Vor%

Dann autorisieren Sie Ihre Anwendung mit diesem Token:

%Vor%

Nachdem Sie authorize_url generiert haben, müssen Sie (oder die Benutzer Ihrer Anwendung) es aufrufen und die OAuth 2.0-Eingabeaufforderung akzeptieren. Wenn dies in einer Webanwendung geschieht, können Sie einfach umleiten, andernfalls müssen Sie den Link in einem Browser aufrufen.

Tauschen Sie nach der Autorisierung den Code für ein Token aus:

%Vor%

Wenn Sie einen Browser besucht haben, müssen Sie die URL, an die Sie weitergeleitet wurden, in die Variable redirect_url kopieren.

Wenn Sie sich in einer Webanwendung befinden, können Sie den Handler für den Pfad /oauth2callback (zum Beispiel) angeben und einfach den Abfrageparameter code abrufen, um den Code für ein Token auszutauschen. Zum Beispiel, wenn WebOb :

verwendet wird %Vor%

Erlauben Sie Ihrem Client mit diesem Token endlich:

%Vor%

Update (12 Monate nach der ursprünglichen Antwort):

Alternativ können Sie die google-api-python-client Unterstützung verwenden, wie ich in einer Blogpost .

    
bossylobster 04.01.2013, 16:31
quelle
2

Die endgültige Lösung war relativ einfach.

Schritt 1 Erhalte oauth2.0 Token. Es ist ziemlich dokumentiert in offiziellen Dokumenten: Ссылка

Schritt 2 Jetzt haben wir Token, können aber die Kontakte-API nicht finden. Sie können jedoch feststellen, dass Sie in oauth2.0 playground Kontakte importieren können. Ссылка

Sie können feststellen, dass Sie Zugriffstoken in den Anmeldeinformationen haben, die Sie in Schritt 1 erhalten haben. Um auf Kontakte api zuzugreifen, müssen Sie zu den Headern folgende Parameter hinzufügen: 'Authorization':'OAuth %s' % access_token

Schritt 3 Jetzt müssen Sie das Google Bibliotheks-Token übergeben, das mit dem oauth1.0 Token kompatibel ist. Dies kann mit folgendem Code geschehen:

%Vor%     
Nikolay Fominyh 20.04.2012 21:35
quelle