Android:将电子表格上传到Google云端硬盘并使用http客户端读取工作表内容

时间:2013-06-01 23:46:14

标签: android google-drive-api

我有一个Android应用,我想在Google云端硬盘中创建一个新的电子表格并稍后阅读内容(用户将使用Google云端硬盘网络客户端向其添加数据)。

据我了解,我无法使用Spreadsheets API创建电子表格,因此我需要使用Drive API。让它们中的任何一个工作一直是与缺少类的斗争,并将不同的jar文件(其中一些似乎已经处于alpha状态一段时间)复制到我的lib目录中。我已经看到有些地方只是点击Eclipse中的某个按钮,但是我正在使用IntelliJ,虽然点击某个按钮似乎不是一个很好的方法来解决这个问题。

对于我正在尝试做的事情,我不需要太多的功能,我已经放弃了大量的jar文件。如何才能使用Android HTTP客户端和一些请求?

我可以使用AccountManager获取帐户和令牌,但无法执行像在列表中列出文件这样简单的操作,因为api url需要和api密钥,但不能是用户令牌。

如何完成以下任务:1。创建电子表格和2.使用普通的旧http请求读取其内容?

1 个答案:

答案 0 :(得分:1)

您可以通过简单的HTTP GET和POST请求实现目标。

Here is a simple tutorial如何在Android上发出HTTP POST请求,您可以通过搜索更多内容轻松搜索更好的示例。

以下是如何创建空电子表格文件的示例

POST https://www.googleapis.com/drive/v2/files?key={YOUR_API_KEY}

Request Body:     
{
 "mimeType": "application/vnd.google-apps.spreadsheet",
 "title": "My new spreadsheet",
 "parents": [
  {
   "id": "{ROOT_FOLDER_ID}"
  }
 ]
}

供您参考,您希望从Files.insert()

中寻找更多选项

此外,为了获取电子表格的内容,您希望使用Files.list()。以下是如何使用Files.list()

的示例
# Get list of files that are Google Drive spreadsheets
GET https://www.googleapis.com/drive/v2/files?q=mimeType%3D+%22application%2Fvnd.google-apps.spreadsheet%22&key={YOUR_API_KEY}

通过使用此命令,您将获得file resource的列表。在文件资源的长内容中,您需要exportLinks属性:

"exportLinks": {
  "application/pdf": "https://docs.google.com/feeds/download/spreadsheets/Export?key={FILE_KEY}&exportFormat=pdf",
  "application/x-vnd.oasis.opendocument.spreadsheet": "https://docs.google.com/feeds/download/spreadsheets/Export?key={FILE_KEY}&exportFormat=ods",
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "https://docs.google.com/feeds/download/spreadsheets/Export?key={FILE_KEY}&exportFormat=xlsx"
 },

使用此链接,您所要做的就是发出HTTP GET请求并从其正文中获取此文件的内容。

我建议您一般查看Google Drive API

另外,如果你想使用Drive Spreadsheet进行一些复杂的工作,我建议你看一下Google Apps Script

玩得开心!