我正在尝试在我的 Google Workspace 帐户上自动生成用户报告,显示他们的状态,并每月通过电子邮件将报告发送给收件人列表。
我正在尝试使用以下脚本获取所有用户的状态:
function generateUserReport() {
const spreadsheet = SpreadsheetApp.getActive();
const userReportSheet = spreadsheet.getSheetByName('User Report');
const shareWithEmails = ['[email protected]', '[email protected]']; // Replace with the email addresses you want to share the report with
const userResult = [];
const users = getAllUsers();
users.forEach(user => {
let status;
if (user.suspended == true) {
status = "suspended";
} else if (user.archived == true) {
status = "archived";
} else {
status = "active";
}
let userItem = {
"primaryEmail" : user.primaryEmail,
"status" : status,
"archived" : user.archived,
"suspended" : user.suspended,
"isAdmin" : user.isAdmin
}
userResult.push(userItem);
})
jsonToSheet_(userResult, "User Report");
//shareSpreadsheet(spreadsheet, shareWithEmails);
//notifyUsers(spreadsheet, shareWithEmails);
}
function getAllUsers() {
let users = [];
let pageToken;
do {
const response = AdminDirectory.Users.list({
customer: 'my_customer',
maxResults: 500,
orderBy: 'email',
pageToken: pageToken
});
users = users.concat(response.users);
pageToken = response.nextPageToken;
} while (pageToken);
return users;
}
function shareSpreadsheet(spreadsheet, shareWithEmails) {
shareWithEmails.forEach(email => {
spreadsheet.addEditor(email);
});
}
function notifyUsers(spreadsheet, shareWithEmails) {
const url = spreadsheet.getUrl();
shareWithEmails.forEach(email => {
MailApp.sendEmail({
to: email,
subject: 'Monthly User Account Status Report',
body: `The user account status report has been generated and shared with you. You can access it here: ${url}`
});
});
}
function createMonthlyTrigger() {
const triggers = ScriptApp.getProjectTriggers();
triggers.forEach(trigger => {
if (trigger.getHandlerFunction() === 'generateUserReport') {
ScriptApp.deleteTrigger(trigger);
}
});
ScriptApp.newTrigger('generateUserReport')
.timeBased()
.onMonthDay(1) // Adjust the day as needed
.atHour(9) // Adjust the hour as needed
.create();
}
但是,当我运行或调试脚本时,我收到此错误消息(还附上了错误消息的屏幕截图
执行日志
3:35:55PM 通知执行开始
下午 3:37:59 错误
ReferenceError:未定义 AdminDirectory
getAllUsers @Code.gs:40
生成用户报告@Code.gs:8
您可能尚未启用 Directory API。请查看官方快速入门 -> https://developers.google.com/admin-sdk/directory/v1/quickstart/apps-script