0

zum Download Um eine Datei von Google Drive herunterladen nach this wir habenAndroid Zugriffstoken für Google Drive Api eine Datei

verwenden

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media Berechtigung: Bearer 'access_token'

ich wissen will, was genau dieser Zugriffs-Token ist? ist diese Android-Client-ID? Wenn die Client-ID im Berechtigungsheader übergeben wird, wird 401 unautorisiert angezeigt. und wenn ich unten angegebenen Code verwenden, Datei erfolgreich heruntergeladen wird, aber wenn ich versuche, es zu öffnen, heißt es ungültige Datei

OutputStream outputStream = new ByteArrayOutputStream(); 
driveService.files().get(fileId) 
    .executeMediaAndDownloadTo(outputStream); 
+0

müssen Sie den Client nicht emulieren, während man es mit gradle ... –

+0

@MartinZeitler was hinzufügen können, zu tun? Müssen wir etwas hinzufügen, um die Datei zu manifestieren? –

+0

Haben Sie Abhängigkeiten in .gradle Datei hinzugefügt? –

Antwort

1

Sie können die Drive API Client Library for Java in das Modul hinzufügen build.gradle ... statt eine neue zu schaffen, Client für die Google Drive-REST-API . Die clientId sollte dann aus der Datei google-services.json stammen (und möglicherweise von den REST-Anmeldeinformationen abweichen, überprüfen Sie die Konsole).

dependencies {

//Google HTTP Client:

compile 'com.google.http-client:google-http-client-android:1.22.0' 
compile 'com.google.http-client:google-http-client-jackson2:1.22.0' 

//Google API Client:

compile 'com.google.api-client:google-api-client-android:1.22.0' 
compile 'com.google.api-client:google-api-client-jackson2:1.22.0' 

//Google OAuth Client:

//Google Drive API:

compile 'com.google.apis:google-api-services-drive:v3-rev65-1.22.0' 

}

dann ./gradlew clean ausführen, um die Bibliotheken herunterzuladen.

+0

Ist Zugriffstoken, Client-ID? –

+0

@NaveedAli Es besteht eine Abhängigkeit für den Google OAuth-Client ... Sie werden sich also wahrscheinlich nicht darum kümmern müssen. Einen REST-Client für Android zu erstellen ist völlig sinnlos, während es einen fertigen Java-Client für Android gibt ... benutze das einfach und versuche, Web-Applikationen für Android zu erstellen. –

+0

@ Naveed Ali Access-Token ist nicht Client-ID, überprüfen Sie meine Antwort [hier] (https://Stackoverflow.com/a/46065286/6143482). – noogui

0

Nach der Lektüre this Artikel Ich kam zu wissen, was genau Zugriffstoken Mobile Api Security

In OAuth2 für Mobile API Sicherheit ist

  1. Ein Benutzer Ihre mobile App eröffnet und ist für ihre Benutzernamen gefragt oder E-Mail und Passwort.

  2. Sie senden eine POST-Anfrage von Ihrer mobilen App an Ihren API-Dienst, wobei der Benutzername oder die E-Mail- und Passwortdaten des Benutzers enthalten sind (OVER SSL!).

  3. Sie validieren die Benutzeranmeldeinformationen und erstellen ein Zugriffstoken für den Benutzer, der nach einer bestimmten Zeit abläuft.

  4. Sie speichern dieses Zugriffstoken auf dem mobilen Gerät und behandeln es wie einen API-Schlüssel, mit dem Sie auf Ihren API-Dienst zugreifen können.

  5. Sobald das Zugriffstoken abläuft und nicht mehr funktioniert, fordern Sie den Benutzer erneut zur Eingabe seines Benutzernamens oder seiner E-Mail-Adresse und seines Kennwortes auf.

+0

erhalten Sie ein Zugriffs-Token und müssen dann ein Refresh-Token erhalten ... während Sie das Rad neu erfinden, das auf Android überhaupt nicht benötigt wird. wird nicht abstimmen, während der Ansatz nur sinnlos ist. warum verschwendest du deine Zeit, um einen Kunden zu schreiben, was nicht funktioniert - während es einen Kunden gibt, der arbeitet und aktiv gepflegt wird? akzeptiere einfach die obige Antwort und lass es bald funktionieren ... hast du es überhaupt versucht? –

+0

Bruder Ich verließ diese Aufgabe in schwebend, weil ich zu einem anderen Projekt verschoben wurde. Ich war nicht klar über Zugriff Token das ist, warum ich diese Frage gestellt habe, aber jetzt mit Hilfe des erwähnten Artikels ist es jetzt klar .. Ich upvoted Ihre Antwort ... das Problem trat auf, selbst wenn ich deine Linien ausprobierte ... deshalb konnte ich es nicht akzeptieren ... jetzt habe ich nicht genug Zeit, um zu dieser Aufgabe zurückzukehren .. daher kann ich deine Antwort nicht akzeptieren Entschuldigung dafür :) –

+0

Bruder Ich verließ diese Aufgabe in schwebend, weil ich zu einem anderen Projekt verschoben wurde. Ich war nicht klar über Zugriff Token das ist, warum ich diese Frage gestellt habe, aber jetzt mit Hilfe des erwähnten Artikels ist es jetzt klar .. I upvoted your antwort .. das problem trat auf, auch wenn ich deine linien ausprobiert habe .. deshalb konnte ich es nicht akzeptieren ... jetzt habe ich nicht genug zeit, um wieder zu kommen o diese Aufgabe .. daher kann ich nicht akzeptieren Ihre Antwort Entschuldigung dafür :) –

Verwandte Themen