Google sheets 使用Sheets API v4(Java)获取Google Sheets上次编辑日期

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();

我在Android中使用Google Sheets API v4

我需要知道最后一次修改表单的时间(包括用户);我需要这个人:

我想这样做:

    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;
}