Wie werden Google Drive-Anmeldedaten in der Android App eingerichtet?

9

Die App wurde in der "Google API-Konsole" als "installierte Anwendung" registriert - scheint dies die richtige Einstellung für eine Android-App zu sein, nein?

Ich habe also eine Client-ID und keine Secret-ID. Um es klar zu stellen: Es ist keine Web-App und keine Google Drive-App - es ist eine Android-App, die auf andere Nutzerdaten in der Google Drive-Cloud zugreift.

Innerhalb der App hole ich das Konto (funktioniert) und ich fordere ein Token (funktioniert). Jetzt möchte ich mit diesem Token und der Client-ID eine Verbindung zu Google Drive herstellen. Das Ergebnis ist ein "401, ungültiger Berechtigungsnachweis". Was ist mit diesem Code falsch?

%Vor%

Ich muss sagen, dass dies eine ganze Ladung Chaos ist. Es gibt so viele Seiten im Web, die nur Teile anzeigen und es gibt so viele Seiten, die veraltete, fehlende oder andere Methoden verwenden, um dasselbe zu tun. Es gibt meines Erachtens nicht zwei Seiten, die den gleichen Weg zeigen, Daten von Google Drive aus einer Android-App zu erhalten.

Jede Hilfe wird sehr geschätzt.

BEARBEITEN: Ich könnte es selbst lösen. Es war eine Kombination verschiedener Änderungen:

  • musste android: minSdkVersion="11" als Voraussetzung
  • setzen
  • Musste diese aktuellen Bibliotheken benutzen: google-api-client-1.11.0-beta.jar, google-api-client-android-1.11.0-beta.jar, google-api-services-drive-v2- rev9-1.8.0-beta.jar, google-http-client-1.11.0-beta.jar, google-http-client-android-1.11.0-beta.jar, google-http-client-gson-1.11. 0-beta.jar, google-http-client-jackson2-1.11.0-beta.jar, google-oauth-client-1.11.0-beta.jar, gson-2.1.jar, guava-11.0.1.jar, jackson-core-2.0.5.jar, jsr305-1.3.9.jar

Dies ist der aktuelle Teil, um das Laufwerksobjekt zu erhalten:

%Vor%     
Harald Wilhelm 13.09.2012, 11:30
quelle

4 Antworten

3

Ja, die Dokumentation ist ziemlich schwer zu verstehen.

Ändern Sie einfach

%Vor%

bis

%Vor%

und es sollte funktionieren.

Sie finden Ihr SIMPLE_API_ACCESS_KEY in der APIs-Konsole von Google unter Einfacher API-Zugriff Abschnitt der Seite API-Zugriff ( API key ). Wenn dieser Abschnitt nicht verfügbar ist, müssen Sie zuerst den Drive API-Zugriff auf der Seite Services aktivieren.

    
Jan Gerlinger 13.09.2012, 13:27
quelle
1

Es gibt zwei Probleme mit dem enthaltenen Snippet.

  1. Sie müssen das alte authToken ungültig machen, bevor Sie ein neues authToken aus dem AccountManager holen.

    %Vor%
  2. Der Aufruf von setJsonHttpRequestInitializer muss den einfachen API-Schlüssel verwenden, der in der APIs-Konsole für Ihr Projekt deklariert ist.

    • Sie können es erhalten, indem Sie die APIs-Konsole besuchen.
    • Klicken Sie im linken Menü auf API-Zugriff .
    • Suchen Sie nach Einfachem API-Zugriff und kopieren Sie den API-Schlüssel .
    • Legen Sie den API-Schlüssel beim Erstellen des Drive-Objekts fest.

      .setJsonHttpRequestInitializer (neuer GoogleKeyInitializer (KEY))

Es gibt ein kleines Beispiel, das die Token-Invalidisierung zeigt: Ссылка

    
Chirag Shah 16.09.2012 23:40
quelle
0

Ich habe das alles ausprobiert und fand schließlich, dass dieser Code mit dem Google Kalender API zusammenarbeitet. Ich habe jedes Mal, wenn ich GoogleCredentials benutzt habe, ein 401 bekommen und es an den Build übergeben.

%Vor%     
SKen 15.09.2012 14:02
quelle
0

Ich habe eine ausführliche Antwort zur Verwendung von Google Drive auf Android hier gegeben:

Android Öffnen und Speichern von Dateien zu / von Google Drive SDK

Mit den Methoden, die ich in dieser Antwort dargelegt habe, kann ich bestätigen, dass Sie Folgendes tun können:

  • Setzen und Zugriff auf Meta-Daten
  • Dateien hochladen
  • Dateien herunterladen
  • Verschieben Sie Dateien zwischen Google Drive-Verzeichnissen
  • Löschen Sie Dateien vollständig vom Laufwerk
ArtOfWarfare 17.09.2012 12:26
quelle