簡體   English   中英

如何僅使用Google Android應用中的Google Drive API在Google雲端硬盤上創建和編輯電子表格文件?

[英]How do I create & edit a spreadsheet file on google drive using Google Drive APIs only from my Android app?

我的申請包含一系列班次。 我想將轉換列表保存到google驅動器帳戶的電子表格文件中。 由於Google Spreadsheets API使用已棄用的Google Doc API來創建電子表格文件; 如何在谷歌驅動器上創建和編輯此類文件,所有這些都來自我的Android應用程序中的java代碼,並且沒有任何用戶交互(授權除外), 使用Google Drive API

Google Docs API已棄用,但Sheets API(當前版本:v3)仍然有效。

要實現原始Sheets + Docs組合的等效功能,您應該使用Drive API執行文件操作,例如搜索/移動/創建/刪除。

除了Drive API的范圍之外,還可以在您的授權中添加以下范圍:

https://spreadsheets.google.com/feeds

如果您使用的是GData客戶端庫Google OAuth客戶端庫 ,則在OAuth 2.0授權后設置這兩種服務非常容易。 這是一個例子:

// Acquire clientId, clientSecret and refreshToken
...

// Create shared credential
GoogleCredential credential = new GoogleCredential.Builder()
            .setClientSecrets(clientId, clientSecret)
            .setJsonFactory(jsonFactory)
            .setTransport(transport)
            .build().setRefreshToken(refreshToken);

// Setup both servives
Drive driveService = new Drive.Builder(transport, jsonFactory, credential).build();
SpreadsheetService sheetService = new SpreadsheetService(...);
sheetService.setOAuth2Credentials(credential);  // only provided in newer releases
sheetService.useSsl();

兩個API中的資源ID相同,因此您可以使用Drive API方法搜索某個文件的ID,並使用Sheets API方法訪問該文件中的工作表。 這是一個例子:

File file = driveService.files().get().setFields(...).execute();
String feedUrl = "https://spreadsheets.google.com/feeds/worksheets/" 
           + file.getId + "/private/full";
WorksheetFeed feed = sheetService.getFeed(feedUrl, WorksheetFeed.class);

如果您收到“令牌無效 - AuthSub令牌具有錯誤范圍”的錯誤,則將accessToken的查詢字符串附加到feedUrl可能會有所幫助。

feedUrl = feedUrl + "?access_token=" + credential.getAccessToken();

僅供參考,我在撰寫此答案時提到的問答清單。

  • “是否可以將Google Drive API與Spreadsheet API一起使用”
  • “獲取使用Drive SDK創建的電子表格”
  • “Google Drive SDK alternateLink與OAuth2”

您應該查看Google Spreadsheet API 3.0 它支持您可以在Android應用程序中使用的JAVA。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM