#javascript #google-apps-script #google-sheets #google-sheets-api
#javascript #google-apps-script #google-sheets #google-sheets-api
Вопрос:
На самом деле я пытался установить что-то вроде репозитория с подсчетом количества просмотров моего документа каждый день. Эта информация присутствует на панели мониторинга активности, но я не смог найти способ извлечь информацию, присутствующую на панели мониторинга активности, в отдельный GSheet.
Ответ №1:
Ближе всего к панели мониторинга активности находится Google Drive Activity API
- Вы можете использовать метод Method: activity.запрос
- Чтобы увидеть ativity для конкретного файла, укажите параметр,
itemName
устанавливающий его наitems/ID_OF_YOUR_FILE
- чтобы ознакомиться со структурой тела ответа — протестируйте с
Try this API
функцией - Позже, чтобы включить эту функцию в Apps Script, включите в редакторе сценариев приложений расширенный сервис 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]);
}
Документация содержит расширенный пример, показывающий, что возможно с API активности диска.
Обновить
Описанный выше метод возвращает среди прочих действия по редактированию, но не действия по просмотру.
Чтобы отслеживать действия при просмотре, вы, как администратор домена, можете использовать Reports API.
- Чтобы использовать ее в Apps Script, включите ее в
Resources -> Advanced Google Services
. - Используйте метод
AdminReports.Activities.list()
. - Укажите в запросе приложение, которое вас интересует (в вашем случае
drive
), и дополнительные параметры запроса, такие как activity (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);
}
}
Комментарии:
1. Привет, я новичок в App script и в том, как работает Google Drive API. Я попытался реализовать небольшой образец, но он не показывает, кто на самом деле просматривал этот документ. Чтобы быть более точным, я просто хочу увидеть имена тех, кто обращался к этому документу. Не могли бы вы, пожалуйста, помочь мне настроить код или что-то в этом роде, чтобы при каждом запуске этого кода я мог получать имена людей, которые просматривали этот документ.
2. К сожалению, просмотрщики не возвращаются активностью диска, я обновлю свой ответ, показывающий, как получить такую информацию с помощью API отчетов.