2013-06-01 65 views
1

我有一個Android應用,我想在Google雲端硬盤中創建一個新的電子表格,並在稍後讀取內容(用戶將數據添加到它使用Google Drive網絡客戶端)。Android:將電子表格上傳到Google雲端硬盤並使用http客戶端讀取工作表內容

據我所知,我無法使用Spreadsheets API創建電子表格,因此我需要使用Drive API。讓他們中的任何一個人工作一直與丟失類的爭鬥和拷貝不同的jar文件(其中一些似乎已經在alpha狀態一段時間了)到我的lib目錄。我見過一些地方說只需點擊Eclipse中的某個按鈕,但我使用的是IntelliJ,儘管點擊某個按鈕看起來並不是一個很好的方法。

對於什麼,我試圖做的,我並不需要的功能的方式很多,我已經放棄了在得到的jar文件的質量,以鍛鍊身體。我怎樣才能使這個與Android HTTP客戶端和一些請求一起工作?

我可以使用AccountManager獲取帳戶和令牌,但無法完成像在驅動器中列出文件那樣簡單的操作,因爲api url需要和api密鑰,而不是用戶令牌。

我該如何完成以下任務:1.創建電子表格並2.用簡單的舊http請求讀取其內容?

回答

1

您可以通過簡單的HTTP GET和POST請求實現您的目標。

如何讓Android上的HTTP POST請求,你或許可以很容易地通過簡單搜索更多搜索他們更好的例子Here is a simple tutorial

下面是如何創建一個空的電子表格文件

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尋找。

另外,如果你想用硬盤電子表格一些複雜的作品,我會建議你在看看Google Apps Script

玩得開心!

+0

感謝您的漫長反應!目前還不清楚我應該如何獲得我可以用於這兩種API的用戶令牌,並且將它用作請求的一部分。 URL顯示使用API​​密鑰,但同時也是必需的,不同。 – user605331

+0

請按照官方文檔中的逐步快速入門指南進行操作。它將向您展示如何生成Drive API的API密鑰和基礎知識。 https://developers.google.com/drive/ –

+0

我的問題來自閱讀文檔,仍然不理解。我來到StackOverflow希望有經驗的人可以提供幫助。 – user605331

相關問題