使用 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 表格上次编辑日期的主要内容,如果未能解决你的问题,请参考以下文章