是否有一个应用程序脚本函数可以将活动仪表板中的查看者信息导出到单独的GSheet中?

实际上,我正在尝试设置一个存储库,每天对我的文档进行查看次数计数。此信息存在于活动仪表板中,但我无法找到将活动仪表板中的信息提取到单独的GSheet中的方法。


解决方案

最接近活动仪表板的是Google Drive Activity API

  • 您可以使用Method: activity.query
  • 方法
  • 若要查看特定文件的活动性,请指定参数itemName,并将其设置为items/ID_OF_YOUR_FILE
  • 使用Try this API功能熟悉响应主体测试的结构
  • 稍后,要将此功能合并到应用程序脚本enable在您的应用程序脚本编辑器中Advanced ServiceDrive Activity API

小样本:

function listDriveActivity() {
  var fileId = "XXX";
  var request = {itemName: "items/" + fileId};
  var response = DriveActivity.Activity.query(request);
  Logger.log("The first activity: " + response.activities[0]);
}

文档包含扩展的sample,用于显示使用驱动器活动API可以实现的功能。

更新

上述方法返回编辑活动,但不返回查看活动。

要跟踪查看活动,作为域管理员,您可以使用Reports API。

  • 若要在Apps脚本中使用它,请在Resources -> Advanced Google Services下启用它。
  • 使用方法AdminReports.Activities.list()
  • 在查询中指定您感兴趣的应用程序(在您的情况下为drive)和其他查询参数,如您感兴趣的文档的活动(view)或id
  • 循环结果并检索感兴趣的字段(例如actor.email)。

示例:

function myFunction() {
  var views = AdminReports.Activities.list("all", "drive", {eventName: "view", filters: "doc_id==XXXXX"}).items;
  for ( var i = 0; i< views.length; i++){
    Logger.log(views[i].actor.email);
  }
}

相关文章