logging - 使用 App 脚本访问完整的谷歌日志
问题描述
我正在编写一个审核完整谷歌日志的脚本。谷歌保留了 450 天(14.7 个月)的日志,但是他们只在控制台中提供了 6 个月,所以我正在编写一个脚本来提取完整的 14.7 个月。我联系了谷歌支持以了解如何最好地做到这一点,他们建议使用 api 调用。
https://developers.google.com/admin-sdk/reports/v1/reference/userUsageReport
我有一个现在可以拉 6 个月的脚本,但我不确定如何将它延长到 google 记录的完整 14 个月。我尝试更改开始日期,但看起来它可能更复杂。
function getData () {
var now = new Date();
var fourhundredfiftydaysago = new Date(now.getTime() - 1000 * 60 * 60 * 24 * 450);
var startTime= fourhundredfiftydaysago.toISOString();
var apps_list = ['admin', 'calendar', 'drive', 'groups', 'gplus', 'login', 'mobile', 'rules', 'token'];
var userKey = 'all';
var optionalArgs = {startTime: startTime};
for (i = 0; i < apps_list.length; i++){
var applicationName = apps_list[i];
var response = AdminReports.Activities.list(userKey, applicationName, optionalArgs)
var activities = response.items;
if (activities && activities.length > 0) {
Logger.log(apps_list[i] + ':');
for (x = 0; x < activities.length; x++) {
var activity = activities[x];
Logger.log('%s: %s (%s)', activity.id.time, activity.actor.email, activity.events[0].name, activity.ipAddress);
}
}
else {
Logger.log(apps_list[i] + ':')
Logger.log('No logs found.');
}
}
}
解决方案
在您的示例中,您查询的是AdminReports.Activites
not AdminReports.UserUsageReports
。
后者是您链接到的文档。如果您查看的文档AdminReports.Activities
,所有申请报告的最长期限为 180 天。