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.
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.
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.
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
:
Alternativ können Sie die google-api-python-client
Unterstützung verwenden, wie ich in einer Blogpost .
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%Tags und Links python google-api contacts oauth-2.0 google-api-python-client