D.G*_*urg 6 java android google-sheets google-drive-api
我的申请包含一系列班次.我想将转换列表保存到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
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 Spreadsheet API 3.0。它支持 JAVA,您可以在 Android 应用程序中使用它。
| 归档时间: |
|
| 查看次数: |
5832 次 |
| 最近记录: |