我可以列出我保存文件的所有时间吗?

Can I list all the times I saved a file?

我公司使用 Google Drive,我们仍然主要使用 Microsoft Office 文档。 是否可以看到我的 activity 或每次我在共享驱动器中保存文档,即使它不是 Google 我想查看 activity 的文档?

我找到了这个 link https://developers.google.com/apps-script/advanced/drive-activity,但是代码只有 returns Google 文档 activity。非 Google 文档如 Word 和 Excel.

使用 DriveApps file.getLastUpdated()。这与您更新它的所有时间都不一样,但它应该是最后一次更改文件的时间。 https://developers.google.com/apps-script/reference/drive/file#getLastUpdated()

或者您真的需要所有编辑时间的列表,而不仅仅是最近一次?在这种情况下,您可以 运行 一个脚本,每天一次,记录您关心的所有文件或文件夹中所有文件的最后更新时间,并记录它们是否已更改。用例是什么?

您可能想检查使用 Revisions.list 是否符合您的需要。

Revisions.list

  • 列出当前文件的修订。

路径参数:

fileId - 文件的 ID。

可选查询参数:

fields - 您希望包含在响应中的字段的路径。如果未指定,则响应包含一组特定于此方法的默认字段。对于开发,您可以将特殊值 * 用于 return 所有字段,但您只需选择所需的字段即可获得更高的性能。有关详细信息,请参阅文件的 Return 个特定字段。

pageSize - 每页最大修订数 return。可接受的值为 1 到 1000(含)。 (默认值:200)

pageToken - 用于在下一页继续上一个列表请求的令牌。这应该设置为上一个响应中 'nextPageToken' 的值。

响应正文:

{
  "kind": "drive#revisionList",
  "nextPageToken": string,
  "revisions": [
    revisions Resource
  ]
}

Revisions Resource表示:

您可以获得与文件修改相关的有用信息,例如修改时间和最后修改用户。

{
  "kind": "drive#revision",
  "id": string,
  "mimeType": string,
  "modifiedTime": datetime,
  "keepForever": boolean,
  "published": boolean,
  "publishedLink": string,
  "publishAuto": boolean,
  "publishedOutsideDomain": boolean,
  "lastModifyingUser": {
    "kind": "drive#user",
    "displayName": string,
    "photoLink": string,
    "me": boolean,
    "permissionId": string,
    "emailAddress": string
  },
  "originalFilename": string,
  "md5Checksum": string,
  "size": long,
  "exportLinks": {
    (key): string
  }
}

您可以在 fields 参数下指定请求中的特定字段,以便在响应正文中只显示必要的信息:

示例字段参数:

nextPageToken, revisions/id, revisions/modifiedTime, revisions/lastModifyingUser/displayName, revisions/lastModifyingUser/emailAddress

示例响应正文:

{
 "revisions": [
  {
   "id": "1898",
   "modifiedTime": "2020-12-16T22:29:02.971Z",
   "lastModifyingUser": {
    "displayName": "User1 Test",
    "emailAddress": "user1@example.com"
   }
  }
 ]
}

谢谢罗恩。修订起到了作用。 我花了一些时间来理解它,但这些是我使用的 2 个函数。当我有 Drive API v3.

时,我会尝试将它们放在一起
function listFilesInFolder() {
// get the id's of files in a folder
    var sheet = SpreadsheetApp.getActiveSheet();
    sheet.appendRow(["Name", "File-Id"]);

    var folder = DriveApp.getFolderById(" ID STRING ");
    var contents = folder.getFiles();
    var counter = 0;
    var file;

    while (contents.hasNext()) {
      var file = contents.next();
      counter++;
      
      data = [
        file.getName(),
        file.getId(),
      ];
      sheet.getRange("C2").setValue = counter
      sheet.appendRow(data);
    };
};    
    
function fileactivity() {

  var revs = Drive.Revisions.list(" FileID String ");
  var savedList = [];
  for(var i=0; i<revs.items.length; i++) {
    var revision = revs.items[i];
//                                       modifiedByMeTime requires Drive API v3
    savedList.push([revision.kind, revision.modifiedDate]);
  };
  var sheet = SpreadsheetApp.getActiveSheet();
  Logger.log(savedList);
}