Google sheets 使用Sheets API v4(Java)获取Google Sheets上次编辑日期
我在Android中使用Google Sheets API v4 我需要知道最后一次修改表单的时间(包括用户);我需要这个人: 我想这样做:Google sheets 使用Sheets API v4(Java)获取Google Sheets上次编辑日期,google-sheets,google-api,google-drive-android-api,google-sheets-api,Google Sheets,Google Api,Google Drive Android Api,Google Sheets Api,我在Android中使用Google Sheets API v4 我需要知道最后一次修改表单的时间(包括用户);我需要这个人: 我想这样做: Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute(); Date date = spreadsheet.getProperties().getLastEditDate();
Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
Date date = spreadsheet.getProperties().getLastEditDate();
但是,当然,不存在这样的getLastEditDate()
property方法。是否需要调用参数或其他API方法来获取此数据
更好的办法是获得每个单元格的修改日期。。。但是我会选择整个电子表格或工作表的日期。这在Sheets API中不可用,但您可以使用驱动API的方法,其中包括响应中的“modifiedTime”。(请注意,默认情况下,它将不包括修改的时间,您必须在“fields”参数中明确要求它。)似乎无法使用API v4完成此操作 但是……看起来它确实可以通过兼容的Google Drive API v3实现。 注意:这个解决方案最好的部分是,我可以对这两个API使用相同的身份验证和凭据收集方法。例如,一旦我有了获取凭证的代码,我就可以交替和连续地将其用于API 以下是我所做的: 将此添加到我的
build.gradle
(如下所示为我的API声明)
我已经在使用EasyPermissions
方法获取帐户和凭据
然后
import com.google.api.services.drive.Drive;
。。。异步:
private DateTime getSheetInformation() throws IOException {
String spreadsheetId = settings.getSpreadsheetId();
Drive.Files.Get fileRequest = driveService.files().get(spreadsheetId).setFields("id, modifiedTime");
File file = fileRequest.execute();
if (file != null) {
return file.getModifiedTime();
}
return null;
}
sheets api v3将在2020年3月被弃用,届时,您最好使用驱动器api
你可以通过我想我会为其他人(稍后)添加我自己的答案,但我肯定会给你评分。有时,知道“你不能”也很重要,知道去哪里(driveapi files.get)。非常感谢你!
protected Drive driveService = new Drive.Builder(transport, jsonFactory, credential)
.setApplicationName("My Application Name")
.build();
private DateTime getSheetInformation() throws IOException {
String spreadsheetId = settings.getSpreadsheetId();
Drive.Files.Get fileRequest = driveService.files().get(spreadsheetId).setFields("id, modifiedTime");
File file = fileRequest.execute();
if (file != null) {
return file.getModifiedTime();
}
return null;
}