Ich verwende den Google-Picker in meiner Web-App, damit der Benutzer Dateien von seinem Google-Laufwerk durchsuchen und auswählen kann. Sobald er die Auswahl getroffen hat, gibt der Picker verschiedene Daten über ausgewählte Dateien zurück, einschließlich Datei-ID und URL. Mein Ziel ist es, die ausgewählten Dateien auf den Server herunterzuladen. Wenn ich die URL an mein Backend-Skript übergebe, kann es keine private Datei herunterladen. Ich weiß, dass ich wahrscheinlich die angegebene Datei-ID verwenden kann, um über die Drive-API auf die Datei zuzugreifen, aber dafür benötige ich ein Zugriffstoken. Daher müsste ich den Benutzer bitten, mir die Erlaubnis zu erteilen, oauth flow zu verwenden. Ich will das nicht machen. Wenn der Benutzer eine Datei mit der Google-Auswahlfunktion ausgewählt hat, erteilt er meiner App implizit die Berechtigung zum Zugriff auf die Datei. Warum kann ich keine öffentliche Download-URL abrufen, auf die ich ohne Token zugreifen kann? So funktioniert Dropbox chooser, glaube ich.
Fehle ich etwas hier und gibt es eine Möglichkeit zu erreichen, was ich versuche ohne oauth Authentifizierung zu gehen. Also, was ich brauche, ist folgendes:
Alternativ könnte ich eine Lösung wie diese verwenden:
Schließlich habe ich eine Lösung gefunden.
Wenn Sie eine Datei herunterladen möchten, benötigen Sie zwei Variablen - oAuthToken
und fileId
oAuthToken erhalten Sie von der JS-Client-Seite, wenn sich der Benutzer authentifiziert. Wenn Sie das Beispiel aus Google Docs ( CSSL ) verwenden, sieht die Funktion folgendermaßen aus:
%Vor% fileId
erhalten Sie, wenn der Benutzer eine Datei auswählt. Wieder ein modifiziertes Beispiel aus Google Docs:
Wahrscheinlich werden Sie diese Daten als Formularanforderung oder über Ajax weitergeben. Einfacher cURL-Aufruf vom Backend zum Herunterladen der Datei:
%Vor%Dokumente zum Dateidownload: Ссылка Eigentlich wurde uns alles gegeben, aber wir konnten unseren Verstand nicht ein wenig bewegen, um den tatsächlichen Code zu erkennen:)
Tags und Links google-drive-sdk google-picker