如何仅使用Google Android应用中的Google Drive API在Google云端硬盘上创建和编辑电子表格文件?

D.G*_*urg 6 java android google-sheets google-drive-api

我的申请包含一系列班次.我想将转换列表保存到google驱动器帐户的电子表格文件中.由于Google Spreadsheets API使用已弃用的Google Doc API来创建电子表格文件; 如何在谷歌驱动器上创建和编辑此类文件,所有这些都来自我的Android应用程序内的java代码,并且没有任何用户交互(授权除外),使用Google Drive API

chy*_*iro 5

Google Docs API已弃用,但Sheets API(当前版本:v3)仍然存在.

要实现原始Sheets + Docs组合的等效功能,您应该使用Drive API执行文件操作,例如搜索/移动/创建/删除.

除了Drive API的范围之外,还可以在您的授权中添加以下范围:

https://spreadsheets.google.com/feeds
Run Code Online (Sandbox Code Playgroud)

如果您使用的是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();
Run Code Online (Sandbox Code Playgroud)

两个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);
Run Code Online (Sandbox Code Playgroud)

如果您收到"令牌无效 - AuthSub令牌具有错误范围"的错误,则将accessToken的查询字符串附加到feedUrl可能会有所帮助.

feedUrl = feedUrl + "?access_token=" + credential.getAccessToken();
Run Code Online (Sandbox Code Playgroud)

仅供参考,我在撰写此答案时提到的问答清单.

  • "是否可以将Google Drive API与Spreadsheet API一起使用"
  • "获取使用Drive SDK创建的电子表格"
  • "Google Drive SDK alternateLink与OAuth2"


Jun*_*wak 4

您应该看一下Google Spreadsheet API 3.0。它支持 JAVA,您可以在 Android 应用程序中使用它。

  • 似乎为了创建电子表格,您需要使用 google doc api,但是 **“Google 文档列表 API 的第 3 版已于 2012 年 9 月 14 日正式弃用”**。在 Google Documents List API 页面上,他们建议您使用 Google Drive API,但我似乎找不到使用它来创建和编辑电子表格文件的方法。 (4认同)