如何使用 Appscript 从 Admin SDK >> Reports API 将已删除、存档、暂停的用户数据(用户电子邮件、删除日期、组织单位路径、存档日期、暂停日期)导入 Google 工作表。谢谢。
问问题
141 次
1 回答
0
欢迎来到 Stackoverflow。请注意,在尽可能多地发布问题时,始终包含您完成的任何研究/示例脚本。请参阅有关如何提出好问题的指南?因为这是这个社区不可分割的一部分。
推荐:
您可以使用下面的示例脚本作为参考。此脚本基于Google Apps 脚本快速入门中的示例
function listUsers() {
var sheet = SpreadsheetApp.getActive().getActiveSheet();
var values = [];
var userKey = 'all';
var applicationName = 'admin';
var optionalArgs = {
maxResults: 100
};
var response = AdminReports.Activities.list(userKey, applicationName, optionalArgs);
var activities = response.items;
if (activities && activities.length > 0) {
Logger.log('REPORTS:');
for (i = 0; i < activities.length; i++) {
var activity = activities[i];
//ONLY GET DATA IF ACTION IS EITHER "SUSPEND_USER", "DELETE_USER", or "ARCHIVE_USER"
if(activity.events[0].name == "SUSPEND_USER" || activity.events[0].name == "DELETE_USER" || activity.events[0].name == "ARCHIVE_USER"){
Logger.log('%s: %s (%s)', activity.id.time, activity.events[0].parameters[0].value,
activity.events[0].name);
//RETRIEVES THE TIMESTAMP, USER'S EMAIL, & THE EVENT NAME THAT WAS PERFORMED TO THE USER
values = [[activity.id.time, activity.events[0].parameters[0].value,activity.events[0].name]];
//SET THE DATA TO SHEET
var lrow = sheet.getLastRow()+1;
sheet.getRange("A"+lrow+":C"+lrow).setValues(values);
}
}
} else {
Logger.log('No reports found.');
}
}
笔记:
在运行脚本之前,您需要AdminReports
在 Apps 脚本编辑器中添加 API:
1. 点击Services
加号图标
2.选择Admin SDK API
3. 点击version
下拉菜单,选择reports_v1
并Add
样品表
结果
运行示例脚本后,执行操作时的时间戳、用户电子邮件地址和执行操作(暂停/删除/存档)将添加到工作表中:
以下是执行日志结果以供参考:
于 2021-05-19T18:21:03.910 回答