首页 > 解决方案 > 是否有应用程序脚本功能将活动仪表板中存在的查看器信息导出到单独的 GSheet 中?

问题描述

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

标签: javascriptgoogle-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


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

  • 您可以使用方法方法:activity.query
  • 要查看特定文件的活动性,请指定将其itemName设置为的参数items/ID_OF_YOUR_FILE
  • 熟悉响应体的结构 - 测试Try this API功能
  • 稍后,要将此功能合并到 Apps 脚本中,请在您的 Apps 脚本编辑器中启用Advanced Service Drive 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]);
}

该文档包含一个扩展示例,用于展示 Drive Activity 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);
  }
}

推荐阅读