使用 Sheets API v4 (Java) 获取 Google Sheets 最后编辑日期
Get Google Sheets Last Edit date using Sheets API v4 (Java)
我在 Android 中使用 Google Sheets API v4。
https://developers.google.com/sheets/api/quickstart/android
我需要知道最后一次修改 sheet 的时间(包括用户);我需要这个人:
我想做这样的事情:
Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
Date date = spreadsheet.getProperties().getLastEditDate();
但是,当然,不存在这样的 getLastEditDate()
属性 方法。是否有参数或其他 API 方法可调用以获取此数据?
更好的方法是获取每个单元格的修改日期... 但我会接受整个传播的日期sheet 或 sheet.
这在表格 API 中不可用,但您可以使用云端硬盘 API 的 files.get 方法,其中包括 'modifiedTime'响应。 (请注意,默认情况下它不会包括修改时间,您必须在 'fields' 参数中明确要求它。)
使用 Google 表格 API v4.
似乎无法做到这一点
但是...看起来确实可以使用兼容的 Google 驱动器 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;
}
工作表 api v3 将于 2020 年 3 月弃用,届时,最好的选择是使用驱动器 API.
https://developers.google.com/drive/api/v3/reference/files/list
你可以通过
我在 Android 中使用 Google Sheets API v4。
https://developers.google.com/sheets/api/quickstart/android
我需要知道最后一次修改 sheet 的时间(包括用户);我需要这个人:
我想做这样的事情:
Spreadsheet spreadsheet = sheetsService.spreadsheets().get(spreadsheetId).setIncludeGridData(true).execute();
Date date = spreadsheet.getProperties().getLastEditDate();
但是,当然,不存在这样的 getLastEditDate()
属性 方法。是否有参数或其他 API 方法可调用以获取此数据?
更好的方法是获取每个单元格的修改日期... 但我会接受整个传播的日期sheet 或 sheet.
这在表格 API 中不可用,但您可以使用云端硬盘 API 的 files.get 方法,其中包括 'modifiedTime'响应。 (请注意,默认情况下它不会包括修改时间,您必须在 'fields' 参数中明确要求它。)
使用 Google 表格 API v4.
似乎无法做到这一点但是...看起来确实可以使用兼容的 Google 驱动器 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;
}
工作表 api v3 将于 2020 年 3 月弃用,届时,最好的选择是使用驱动器 API.
https://developers.google.com/drive/api/v3/reference/files/list
你可以通过