我的申请包含一系列班次。我想将转换列表保存到google驱动器帐户的电子表格文件中。由于 Google Spreadsheets API 正在使用已弃用的Google Doc API 来创建电子表格文件;我如何在谷歌硬盘上创建和编辑这样的文件,全部来自我的Android应用程序内的java代码,没有任何用户交互(授权除外),只使用 Google Drive API ?
答案 0 :(得分:5)
Google Docs API已被弃用,但Sheets API(当前版本:v3)仍然存在。
要实现原始Sheets + Docs组合的等效功能, 您应该使用Drive API执行文件操作,例如搜索/移动/创建/删除。
除了Drive API的范围之外,还要在您的授权中添加以下范围:
https://spreadsheets.google.com/feeds
如果您正在使用GData client library和Google OAuth client library,则在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);
如果您收到错误#34;令牌无效 - AuthSub令牌的范围错误",将accessToken的查询字符串附加到feedUrl可能会有所帮助。
feedUrl = feedUrl + "?access_token=" + credential.getAccessToken();
仅供参考,我在撰写此答案时提到了Q& As的列表。
答案 1 :(得分:4)
你应该看看Google Spreadsheet API 3.0。它支持您可以在Android应用程序中使用的JAVA。