2013-11-26 8 views
7

Ich erstelle eine Anwendung, um automatisch den Download einer Dateifreigabe mit einem Benutzer auszulösen. Zum Beispiel war dies für Dropbox-Links einfach zu implementieren, wie es beschrieben ist here. Programmgesteuertes Herunterladen von Inhalten aus Drive Share-Links

Ich versuche, die gleiche Funktionalität für Google Drive-Links zu implementieren, aber in Schwierigkeiten geraten. Momentan nimmt die App den dritten Teil des Links (die Datei-ID) und hängt ihn an "https://docs.google.com/uc?export=download&id=" an. Dies scheint jedoch unzuverlässig zu sein, zumal es mindestens drei verschiedene Linkformate für freigegebene Dateien gibt, die ich gefunden habe (https://drive.google.com/file/d/xyz, https://docs.google.com/ Dokument/d/xyz usw.). Kennt jemand eine allgemein anwendbare und zuverlässige Methode, um die Dateien von freigegebenen Google Drive-Links abzurufen, wie dies oben für Dropbox beschrieben wurde?

Endlich haben wir Oauth Zugriff auf ein Benutzerkonto. Für freigegebene Dateien, deren Freigabeeinstellungen auf "Privat" (oder auf etwas anderes als "Öffentlich im Web" oder "Jeder mit dem Link" eingestellt sind), habe ich (mit geringem Erfolg) geforscht, ob ein Download möglich ist Diese Dateien im Namen des authentifizierten Oauth-Benutzers - hat irgendjemand dazu einen Einblick?

Alle Einblicke/Vorschläge würden sehr geschätzt werden.

[Update] Die "privaten" freigegebenen Dateien können vom Drive-Konto des Benutzers heruntergeladen werden - sie werden automatisch zum Ordner "Für mich freigegeben" hinzugefügt. Sie brauchen also nur einen zuverlässigen Weg, um die Datei-ID zu erhalten.

+0

Sie sollten keine eigenen URLs erstellen. Sie müssen die Dateiressource (entweder direkt nach ID oder über eine Abfrage) abrufen und dann die verschiedenen Download-/Export-URLs verwenden, die am besten zu Ihrem Anwendungsfall passen. – pinoyyid

+0

Irgendwelche Vorschläge, um die ID von dem Link in erster Linie zu greifen? Auf der Suche nach einem zuverlässigen Weg, dies zu tun. – Cian

+0

https://developers.google.com/drive/v2/reference/files/list – pinoyyid

Antwort

1

Von meinem Verständnis von Laufwerk, müssen Sie für verschiedene Dateitypen in getrennten Orten suchen:

  • /document /: Dokumente
  • /Präsentation /: Präsentationen
  • /Tabelle /: Tabellen
  • /forms /: Formulare
  • /Zeichnungen /: Zeichnungen

Darüber hinaus scheint es keine Möglichkeit zu geben, die Dokumente abzurufen.

+0

Dann zögern Sie nicht, Ihre eigene Antwort zu geben. – Msmith

+1

Die Datei-ID zuverlässig aus der verknüpften Datei zu bekommen, ist wegen der unterschiedlichen Link-Formate das eigentliche Problem. – Cian

+0

Das wäre das Problem bei der Verwendung dieses ... aber Sie sollten in der Lage sein, den Dateityp zu analysieren und diesen zu verwenden, um den benötigten Unterordner zu erhalten. Auch hier scheint es leider nicht so, dass sie alle Dateien unter demselben Unterordner hosten. – Msmith