Загрузка таблиц Google Sheets с Google Drive на Android - PullRequest
5 голосов
/ 11 мая 2010

Я работаю над приложением Android, которое использует gdata-java-client для загрузки документов только для отображения. Пока у меня есть приложение, которое аутентифицируется с помощью сервисов и отображает список пользовательских документов. Когда пользователь выбирает документ, выполняется другой запрос для самих документов. Запрос на файлы txt, html, rtf и doc работает хорошо, однако, когда я запрашиваю электронную таблицу в формате .csv или .xsl, результат неожиданный.

Я использую объект HTTPResponse для хранения результата HTTPRequest. Когда я запрашиваю документ в формате .csv или .xsl, метод HTTPResponse.parseAsString () создает всю HTML-страницу, которая выглядит как домашняя страница Документов Google. Звучит странно, но результатом является фактический HTML-код для страницы входа. HTTPResponse.getStatusMessage возвращает 200.

Похоже, мне здесь не хватает чего-то простого. Есть ли другое свойство HTTPResponse, содержащее данные .csv?

Я почти уверен, что использую правильный URI для загрузки электронных таблиц, потому что он работает, когда я загружаю через браузер. В любом случае вот пример URI:

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

Заранее спасибо за любую помощь:)

Ответы [ 3 ]

5 голосов
/ 30 мая 2010

Я не видел ваш код, но, скорее всего, проблема в том, что вы используете ClientLogin и аутентифицированы для API Списка документов с использованием сервиса "writely" Тем не менее, поскольку при экспорте электронной таблицы будет отображаться страница распространения, вам потребуется использовать ClientLogin для аутентификации в «мудрой» службе. От Java это означает использование клиентской библиотеки Java Spreadsheets, которая описана здесь: http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheets

Обратите внимание на примечание с пометкой " Важно " вверху, которое ссылается здесь: http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheetsClientLogin

По этой ссылке подробно описывается использование экземпляра SpreadsheetClient.

Удачи:)

1 голос
/ 17 мая 2010

Я недостаточно знаком с API Списка документов, чтобы знать, но из вашего описания это звучит так, как будто вы столкнулись с ошибкой в ​​API Списка документов, и мне кажется, что это важная проблема, которую нужно исправить.

Пожалуйста, сообщите о своей проблеме на форуме API Списка документов, чтобы увеличить вероятность того, что кто-то знающий сможет рассмотреть эту проблему:

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

0 голосов
/ 07 марта 2017

Это 2017 год, и теперь есть совершенно новый способ делать вещи. GData, GData API, такие как API Списка документов, ClientLogin и URL-адреса загрузки диска, теперь устарели. На их месте - Drive API, Sheets API и более естественный способ интеграции с технологиями Google из приложений Android: Клиентская библиотека API Google для Android . Есть также клиентская библиотека API Google для Java , если вы вместо этого делаете на стороне сервера.

Если вы хотите выполнить документ -ориентированные операции с электронными таблицами, вы должны использовать Google Sheets API и использовать клиентскую библиотеку выше. Теперь несколько примеров ... вот пример кода быстрого запуска Android , а также более общий пример кода быстрого запуска Java для API Sheets. Также не помешает передать справочник JavaDocs для Sheets API . Последний API Sheets предоставляет функции, недоступные в более старых выпусках, а именно предоставляет разработчикам программно-ориентированный документный доступ к Sheet, как если бы вы использовали пользовательский интерфейс (создание замороженных строк, форматирование ячеек, изменение размеров строк / столбцов, добавление сводных таблиц, создание диаграммы и т. д.)

Однако, чтобы выполнить доступ к файлу -уровня, например, в вопросе OP, вы должны использовать Google Drive API . Существует даже Google Drive API для Android , включая страницу документов специально для получения содержимого документа . Если вы новичок в этой библиотеке, вот пример приложения Drive API для Android , а также других примеров кода , чтобы вы могли начать работу. Вот справочный документ Drive API для Android класса .

...