5

Tôi đang làm việc trên ứng dụng Android sử dụng gdata-java-client để tải xuống tài liệu chỉ để hiển thị. Cho đến nay tôi có một ứng dụng xác thực với các dịch vụ và hiển thị một danh sách các tài liệu người dùng. Khi người dùng chọn một tài liệu, một truy vấn khác được thực hiện cho chính các tài liệu đó. Yêu cầu tệp txt, html, rtf và doc hoạt động tốt, tuy nhiên khi tôi yêu cầu bảng tính ở định dạng .csv hoặc .xsl thì kết quả là không mong muốn.Tải xuống bảng tính Google Trang tính từ Google Drive trên Android

Tôi đang sử dụng đối tượng HTTPResponse để lưu trữ kết quả của HTTPRequest. Khi tôi yêu cầu một tài liệu ở định dạng .csv hoặc .xsl, phương thức HTTPResponse.parseAsString() tạo ra toàn bộ trang html dường như là trang chủ Google Documents. Âm thanh lạ, nhưng kết quả là html thực tế cho trang đăng nhập. HTTPResponse.getStatusMessage trả lại 200.

Có vẻ như tôi thiếu thứ gì đó đơn giản ở đây. Có thuộc tính nào khác của HTTPResponse có chứa dữ liệu .csv không?

Tôi khá chắc chắn rằng tôi đang sử dụng đúng uri để tải xuống bảng tính vì nó hoạt động khi tôi tải xuống thông qua trình duyệt của mình. Trong bất kỳ trường hợp đây là một ví dụ uri:

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

Cảm ơn trước sự giúp đỡ nào :)

+0

Nếu bạn không phiền, bạn có thể thêm thẻ "google-api-java-client" không? –

+0

@Jason Hall Tôi tò mò, tại sao bạn chỉnh sửa câu hỏi gốc quá nhiều? – JeremyFromEarth

+0

AFAIK thay đổi duy nhất tôi thực hiện là xóa "gdata-java-client" và thêm "google-api-java-client" - xem http://stackoverflow.com/posts/2813470/revisions –

Trả lời

1

Tôi không rành lắm về danh sách tài liệu API để biết, nhưng từ mô tả của bạn nó như bạn có thể âm thanh đã gặp lỗi trong API danh sách tài liệu và có vẻ như tôi đang gặp vấn đề quan trọng cần khắc phục.

Hãy báo cáo vấn đề của bạn tại diễn đàn Danh sách tài liệu API để nâng cao khả năng một người am hiểu sẽ có thể xem xét vấn đề này:

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

5

Tôi đã không nhìn thấy mã của bạn, nhưng chắc chắn nhất vấn đề là bạn đang sử dụng ClientLogin và được xác thực cho API danh sách tài liệu bằng cách sử dụng dịch vụ 'writely'. Tuy nhiên, vì việc xuất bảng tính sẽ truy cập vào spreadsheets.google.com, bạn cần phải sử dụng ClientLogin để xác thực dựa trên dịch vụ 'khôn ngoan'. Từ Java, có nghĩa là sử dụng thư viện client Spreadsheets Java, được ghi nhận ở đây: http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheets

Note tờ giấy có nhãn 'quan trọng' ở phía trên cùng ở đó, mà liên kết ở đây: http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html#DownloadingSpreadsheetsClientLogin

Tại liên kết , sử dụng một cá thể SpreadsheetClient được trình bày chi tiết.

Chúc may mắn :)

+0

Điều này cho thấy API không dùng nữa. – Youngjae

0

Đó là năm 2017 và có cách hoàn toàn mới để làm mọi thứ ngay bây giờ. GData, GData API như API danh sách tài liệu, ClientLogin và URL tải xuống Drive đều đã lỗi thời. Vị trí của họ là API Drive, API trang tính và cách tích hợp hơn với công nghệ của Google từ ứng dụng Android: Google APIs Client Library for Android. Ngoài ra, cũng có một Google APIs Client Library for Java nếu bạn đang thực hiện phía máy chủ.

Nếu bạn muốn thực hiện tài liệu thao tác định hướng trên bảng tính, bạn sẽ sử dụng Google Sheets API và làm như vậy bằng Thư viện khách hàng ở trên. Bây giờ, đối với một số ví dụ ... đây là số Android quickstart code sample cũng như tổng quát hơn Java quickstart code sample cho API trang tính. Không thể bị tổn thương để vượt qua JavaDocs reference for the Sheets API một trong hai.API Trang tính mới nhất cung cấp các tính năng không có sẵn trong các bản phát hành cũ hơn, cụ thể là cấp cho nhà phát triển khả năng truy cập tài liệu theo định hướng vào Trang tính như thể bạn đang sử dụng giao diện người dùng (tạo hàng cố định, thực hiện định dạng ô, đổi kích thước hàng/cột, thêm bảng tổng hợp, tạo biểu đồ, v.v.)

Tuy nhiên, để thực hiện , hãy truy cập cấp quyền truy cập, chẳng hạn như trong câu hỏi của OP, bạn sẽ sử dụng Google Drive API. Thậm chí có một số Google Drive API for Android, bao gồm docs page specifically on retrieving document contents. Nếu bạn mới sử dụng thư viện này, đây là Drive API Android quickstart sample app cũng như other code samples để giúp bạn bắt đầu. Đây cũng là số Drive API for Android class reference docs.

Các vấn đề liên quan