5

Ich arbeite an einer Android-App, die den gdata-java-Client zum Herunterladen von Dokumenten für die Anzeige verwendet. Bisher habe ich eine Anwendung, die sich mit den Diensten authentifiziert und eine Liste von Benutzerdokumenten anzeigt. Wenn der Benutzer ein Dokument auswählt, wird eine weitere Abfrage für die Dokumente selbst durchgeführt. Eine Anfrage für txt, html, rtf und doc Dateien funktioniert gut, aber wenn ich eine Tabelle im .csv oder .xsl Format anfordere, ist das Ergebnis unerwartet.Herunterladen von Google Tabellen-Tabellen von Google Drive unter Android

Ich verwende ein HTTPResponse-Objekt, um das Ergebnis eines HTTPRequest zu speichern. Wenn ich ein Dokument im CSV- oder XSL-Format anfordere, erzeugt die HTTPResponse.parseAsString() -Methode eine vollständige HTML-Seite, die die Startseite von Google Docs zu sein scheint. Klingt komisch, aber das Ergebnis ist der tatsächliche HTML-Code für die Anmeldeseite. Die HTTPResponse.getStatusMessage gibt eine 200 zurück.

Scheint, dass ich hier etwas Einfaches vermisse. Gibt es eine andere Eigenschaft der HTTPResponse, die die CSV-Daten enthält?

Ich bin mir ziemlich sicher, dass ich die richtige uri zum Herunterladen von Tabellen verwende, weil es funktioniert, wenn ich über meinen Browser downloade. In jedem Fall ist hier ein Beispiel uri:

https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=0AsE_6_YIr797dHBTUWlHMUFXeTV4ZzJlUGxWRnJXanc&exportFormat=csv 

Vielen Dank im Voraus für jede Hilfe :)

+0

Wenn es Ihnen nichts ausmacht, würden Sie bitte den Tag "google-api-java-client" hinzufügen? –

+0

@Jason Hall Ich bin neugierig, warum hast du die ursprüngliche Frage so viel bearbeitet? – JeremyFromEarth

+0

AFAIK die einzige Änderung, die ich gemacht habe, war "gdata-java-client" zu entfernen und "google-api-java-client" hinzuzufügen - siehe http://stackoverflow.com/posts/2813470/revisions –

Antwort

1

Ich bin nicht vertraut genug mit der Dokumentenliste API zu wissen, aber aus Ihrer Beschreibung klingt es wie können Sie habe einen Fehler in der Documents List API gefunden, und es klingt für mich wie ein wichtiges Problem zu beheben.

Bitte melden Sie Ihre Frage im Forum Dokumente Listen API, um die Chance zu erhöhen, dass jemand kenntnis der Lage wäre, in dieser Frage zu suchen:

http://www.google.com/support/forum/p/apps-apis/label?lid=5c316c702e844c99&hl=en

5

Ich habe den Code nicht gesehen, aber mit Sicherheit Das Problem ist, dass Sie ClientLogin verwenden und für die Documents List-API mit dem Dienst "writely" authentifiziert werden. Da das Exportieren einer Tabelle jedoch auf "broadsheets.google.com" erfolgt, müssen Sie ClientLogin verwenden, um sich gegenüber dem "weisen" Service zu authentifizieren. Von Java, bedeutet, dass die Tabellen-Java-Client-Bibliothek, die hier dokumentiert ist: http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheets

Note die Note 'Wichtige' oben dort markiert, die hier Links: http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheetsClientLogin

Zu diesem Link Die Verwendung einer SpreadsheetClient-Instanz wird detailliert beschrieben.

Viel Glück :)

+0

Dies zeigt veraltete API. – Youngjae

0

Es ist 2017, und es gibt eine völlig neue Art und Weise jetzt Dinge zu tun. GData, GData-APIs wie die Documents List-API, ClientLogin und Drive-Download-URLs sind jetzt veraltet. An ihrer Stelle befinden sich eine Drive-API, eine Google Tabellen-API und eine nativere Methode zur Integration mit Google-Technologien aus Android-Apps: die Google APIs Client Library for Android. Es gibt auch eine Google APIs Client Library for Java, wenn Sie stattdessen Server-Seite tun.

Wenn Sie Dokument -orientierte Operationen auf Tabellen ausführen möchten, verwenden Sie die Google Sheets API und tun dies mithilfe der Client-Bibliothek oben. Nun zu einigen Beispielen ... hier ist die sowie die allgemeinere Java quickstart code sample für die Sheets API. Kann nicht schaden, die JavaDocs reference for the Sheets API entweder zu übergeben.Die neueste Google Tabellen-API bietet Funktionen, die in älteren Versionen nicht verfügbar sind. Entwickeln Sie Entwicklern programmatischen dokumentorientierten Zugriff auf ein Blatt, als ob Sie die Benutzeroberfläche verwenden würden (fixierte Zeilen erstellen, Zellen formatieren, Zeilen/Spalten ändern, Pivot-Tabellen hinzufügen, erstellen) Diagramme, usw.)

Um jedoch Datei -level-Zugriff, wie in der OP-Frage durchzuführen, würden Sie die Google Drive API verwenden. Es gibt sogar eine Google Drive API for Android, einschließlich einer docs page specifically on retrieving document contents. Wenn Sie neu in dieser Bibliothek sind, hier ist die Drive API Android quickstart sample app sowie other code samples, um loszulegen. Hier sind die Drive API for Android class reference docs auch.

Verwandte Themen