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

Posted

技术标签:

【中文标题】使用 Sheets API v4 (Java) 获取 Google 表格上次编辑日期【英文标题】:Get Google Sheets Last Edit date using Sheets API v4 (Java) 【发布时间】:2017-09-10 16:33:32 【问题描述】:

我在 android 中使用 Google Sheets API v4。

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

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

我想做这样的事情:

    Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
    Date date = spreadsheet.getProperties().getLastEditDate();

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

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

【问题讨论】:

【参考方案1】:

这在 Sheets API 中不可用,但您可以使用 Drive API 的 files.get 方法,该方法在响应中包含“modifiedTime”。 (请注意,默认情况下它不会包含修改时间,您必须在 'fields' 参数中明确要求。)

【讨论】:

我想我会为其他人添加我自己的答案(稍后),但我肯定会给你功劳。有时,仅仅知道“你不能!”就很重要。此外,去哪里(Drive API files.get)。非常感谢! 在 Drive API v3 中,执行此操作的代码如下所示:driveService.files().get(documentKey).setFields("modifiedTime").execute()【参考方案2】:

Sheets API v4 似乎无法做到这一点。

但是...看起来确实可以使用兼容的 Google Drive API v3 来完成。

注意:这个解决方案最好的部分是我可以对两个 API 使用相同的身份验证和凭据收集方法。例如,一旦我有了获取凭据的代码,我就可以将它交替地和连续地用于两个 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();

...异步:

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;

【讨论】:

【参考方案3】:

Sheets api v3 将于 2020 年 3 月弃用,届时最好使用驱动 API。

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

你可以通过

【讨论】:

以上是关于使用 Sheets API v4 (Java) 获取 Google 表格上次编辑日期的主要内容,如果未能解决你的问题,请参考以下文章