Der Zugriff auf ein Google Drive spreadsheet von Appengine
Ich habe eine appengine app, die Zugriff auf eine einzelne, hart codierte Tabellen auf Google Drive.
Bis jetzt habe ich schon diese erreichen Sie wie folgt vor:
SpreadsheetService service = new SpreadsheetService("myapp");
service.setUserCredentials("[email protected]", "myhardcodedpassword");
Wenn ich versuchte dies heute mit einem neuen Benutzer, ich habe InvalidCredentialsException
obwohl der Benutzername und das Kennwort sind definitiv korrekt. Ich habe eine E-Mail in meinem Posteingang, die sagen Verdacht sign-ins verhindert werden, und es scheint keinen Weg, um Ihnen zu ermöglichen, wieder.
Ich bin mir auch bewusst, dass der hart codierten Passwörter in der Quelle ist eine schlechte Praxis.
Allerdings habe ich gelesen, sehr weit online aktivieren OAuth/OAuth2 für diesen, und landete verschwenden Stunden und Stunden piecing Fragmente von Informationen aus blogs, stackoverflow Antworten etc, ohne Erfolg.
Idealerweise die Lösung bestünde in einem ersten Prozess zu generieren, der eine langlebige access-token, die dann, werden hart-codiert in der app.
Ich soll eine endgültige Liste von Schritten, wie dies zu erreichen?
Mach ich verstehen. Aber zum codieren von einem server zum abrufen einer bestimmten google-Tabelle ist bei weitem nicht eindeutig, in der Tat, ich bin nicht überzeugt, es ist sogar möglich mit OAuth. Alle die ich finden kann, wenn die Suche in der Umgebung sind viele andere verblüfft devs.
hmm, scheint Sie nicht zu verstehen, es aus diesem Kommentar.
Heh, gehen und schwelgen in Ihrer offensichtlichen überlegenheit.
Das ist nicht der Punkt. Das problem ist, dass Sie behaupten, es zu verstehen, wenn seine Hand Sie nicht. Wenn Sie Tat Sie würde nicht Fragen, wie basic auestion und ohne jeglichen code, der zeigt, wo dein Problem sein könnte.
InformationsquelleAutor funkybro | 2014-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
EDIT: Wie Google haben neu gestaltet, die API-Konsole, die details der nachfolgenden Schritte haben sich geändert - siehe Kommentare
OK hier geht, Schritt für Schritt
Die refresh-token ist das äquivalent von Ihrem langen lebte, Benutzername/Kennwort, also das ist, was Sie hart code (oder irgendwo speichern sichern Sie Ihre app abrufen kann).
Wenn Sie benötigen, um access-Tabellen in Google Tabellen, werden Sie rufen
zurückgeben wird, Sie ein access-token
Setzen Sie das Zugriffstoken in http-header bei jedem Zugriff auf die Spreadsheets-API
Fertig
Ich nehme an, Sie haben zu erhalten, die client-ID und Secret In die Oauth Teil der Anmeldedaten-Registerkarte. Aber Ein Client-Geheimnis scheint es nicht gegeben zu werden.
Sie müssen wählen Sie "CREATE NEW CLIENT ID" -> "Web-Anwendung"
Google überarbeitet seine cloud console-Benutzeroberfläche noch einmal. Nach der Erstellung Ihres Projekts, gehen Sie auf "API-Manager", wählen "Drive API", klicken Sie auf "Aktivieren". Wählen Sie "Berechtigungen" auf der linken Seite, wählen Sie "OAuth Zustimmung screen" - Registerkarte, geben Sie einen Produktnamen ein und klicken Sie auf Speichern. Wählen Sie "Anmeldeinformationen" - Registerkarte "Anmeldeinformationen Erstellen" -> "OAuth-client-ID". In den "Application type" wählen Sie "Web application". Wählen Sie dann "Erstellen".
InformationsquelleAutor pinoyyid
Pinoyyid hat ja auch wunderbar helfen. Ich wollte follow-up mit Python-code, der erlauben wird, Zugang zu einem Persönlichen (web-zugänglich sind), Google Drive.
Diese gut läuft in der Google App Engine (als Teil einer web-app) und auch standalone auf dem desktop (vorausgesetzt, der Google App Engine SDK auf Ihrem Computer installiert ist [verfügbar: https://developers.google.com/appengine/downloads%5D).
In meinem Fall habe ich Hinzugefügt https://www.googleapis.com/auth/drive Umfang während Pinyyid Prozess, weil ich wollte, Zugriff auf alle meine Google-Drive-Dateien.
Nach folgenden Pinoyyid die Anweisungen, um Ihre refresh-token etc., dieses kleine Python-script erhalten Sie eine Auflistung von allen Dateien auf Ihrem Google drive:
Ich bin dankbar für alle, die die Schritte auf dem Weg zu einer Lösung.
InformationsquelleAutor Eric Woudenberg