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

时间:2017-04-14 12:02:13

标签: google-sheets google-api google-drive-android-api google-sheets-api

我在Android中使用Google表格API v4。

https://developers.google.com/sheets/api/quickstart/android

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

enter image description here

我想做这样的事情:

B

但是,当然,不存在这样的FifthService属性方法。是否有参数或其他API方法来调用以获取此数据?

更好的方法是获取每个单元格的修改日期... 但我会选择整个电子表格或表格的日期。

3 个答案:

答案 0 :(得分:7)

这在Sheets API中不可用,但您可以使用Drive API的the structure方法,其中包括“已修改的时间”和#39;在回应中。 (请注意,默认情况下,它不会包含修改时间,您必须在'字段'参数中明确要求它。)

答案 1 :(得分:2)

使用Sheets API v4看起来无法做到这一点。

但是......看起来可以使用兼容的Google云端硬盘API v3。

注意:关于此解决方案的最佳部分是我可以对两个API使用相同的身份验证和凭据收集方法。例如,一旦我获得了凭证的代码,我就可以互换地连续使用它。

这就是我的所作所为:

将此添加到我的build.gradle(显示在我的表格API声明中)

compile('com.google.apis:google-api-services-sheets:v4-rev468-1.22.0') {
    exclude group: 'org.apache.httpcomponents'
}
compile('com.google.apis:google-api-services-drive:v3-rev69-1.22.0') {
    exclude group: 'org.apache.httpcomponents'
}

我已经使用EasyPermissions方法获取帐户和凭据。 Great example here

则...

import com.google.api.services.drive.Drive;

...

protected Drive driveService = new Drive.Builder(transport, jsonFactory, credential)
            .setApplicationName("My Application Name")
            .build();

... async:

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

答案 2 :(得分:0)

sheets api v3将于2020年3月弃用,这时最好的选择是使用drive API。

https://developers.google.com/drive/api/v3/reference/files/list

您可以通过