บริการรายงาน SDK ของผู้ดูแลระบบ

บริการรายงานของ Admin SDK ช่วยให้คุณใช้ Reports API ของ Admin SDK ใน Apps Script ได้ API นี้ช่วยให้ผู้ดูแลระบบ ของ Google Workspace โดเมน (รวมถึงตัวแทนจำหน่าย) สามารถ สร้างรายงานการใช้งานที่กำหนดเองสำหรับโดเมนของตนได้

ข้อมูลอ้างอิง

ดูข้อมูลโดยละเอียดเกี่ยวกับบริการนี้ได้ที่เอกสารอ้างอิงสำหรับ Admin SDK Reports API เช่นเดียวกับบริการขั้นสูงทั้งหมดใน Apps Script บริการรายงาน Admin SDK จะใช้ออบเจ็กต์ เมธอด และพารามิเตอร์เดียวกันกับ API สาธารณะ ดูข้อมูลเพิ่มเติมได้ที่วิธีกำหนดลายเซ็นของเมธอด

หากต้องการรายงานปัญหาและรับการสนับสนุนอื่นๆ โปรดดูคู่มือการสนับสนุนสำหรับรายงาน Admin SDK

โค้ดตัวอย่าง

ตัวอย่างโค้ดด้านล่างใช้ API เวอร์ชัน 1

สร้างรายงานกิจกรรมการเข้าสู่ระบบ

ตัวอย่างนี้จะสร้างรายงานกิจกรรมการเข้าสู่ระบบของสัปดาห์ที่ผ่านมาเป็น สเปรดชีต รายงานประกอบด้วยเวลา ผู้ใช้ และผลการเข้าสู่ระบบ

advanced/adminSDK.gs
/**  * Generates a login activity report for the last week as a spreadsheet. The  * report includes the time, user, and login result.  * @see https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list  */ function generateLoginActivityReport() {   const now = new Date();   const oneWeekAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);   const startTime = oneWeekAgo.toISOString();   const endTime = now.toISOString();    const rows = [];   let pageToken;   let page;   do {     page = AdminReports.Activities.list('all', 'login', {       startTime: startTime,       endTime: endTime,       maxResults: 500,       pageToken: pageToken     });     const items = page.items;     if (items) {       for (const item of items) {         const row = [           new Date(item.id.time),           item.actor.email,           item.events[0].name         ];         rows.push(row);       }     }     pageToken = page.nextPageToken;   } while (pageToken);    if (rows.length === 0) {     console.log('No results returned.');     return;   }   const spreadsheet = SpreadsheetApp.create('Google Workspace Login Report');   const sheet = spreadsheet.getActiveSheet();    // Append the headers.   const headers = ['Time', 'User', 'Login Result'];   sheet.appendRow(headers);    // Append the results.   sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);    console.log('Report spreadsheet created: %s', spreadsheet.getUrl()); }

สร้างรายงานการใช้งานของผู้ใช้

ตัวอย่างนี้จะสร้างรายงานการใช้งานของผู้ใช้สำหรับวันนี้ของสัปดาห์ที่แล้วเป็นสเปรดชีต รายงานประกอบด้วยวันที่ ผู้ใช้ เวลาเข้าสู่ระบบล่าสุด จำนวน อีเมลที่ได้รับ และจำนวนเอกสารที่เป็นเจ้าของ

advanced/adminSDK.gs
/**  * Generates a user usage report for this day last week as a spreadsheet. The  * report includes the date, user, last login time, number of emails received,  * and number of drive files created.  * @see https://developers.google.com/admin-sdk/reports/reference/rest/v1/userUsageReport/get  */ function generateUserUsageReport() {   const today = new Date();   const oneWeekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);   const timezone = Session.getScriptTimeZone();   const date = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd');    const parameters = [     'accounts:last_login_time',     'gmail:num_emails_received',     'drive:num_items_created'   ];   const rows = [];   let pageToken;   let page;   do {     page = AdminReports.UserUsageReport.get('all', date, {       parameters: parameters.join(','),       maxResults: 500,       pageToken: pageToken     });     if (page.warnings) {       for (const warning of page.warnings) {         console.log(warning.message);       }     }     const reports = page.usageReports;     if (reports) {       for (const report of reports) {         const parameterValues = getParameterValues(report.parameters);         const row = [           report.date,           report.entity.userEmail,           parameterValues['accounts:last_login_time'],           parameterValues['gmail:num_emails_received'],           parameterValues['drive:num_items_created']         ];         rows.push(row);       }     }     pageToken = page.nextPageToken;   } while (pageToken);    if (rows.length === 0) {     console.log('No results returned.');     return;   }   const spreadsheet = SpreadsheetApp.create('Google Workspace User Usage Report');   const sheet = spreadsheet.getActiveSheet();    // Append the headers.   const headers = ['Date', 'User', 'Last Login', 'Num Emails Received',     'Num Drive Files Created'];   sheet.appendRow(headers);    // Append the results.   sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);    console.log('Report spreadsheet created: %s', spreadsheet.getUrl()); }  /**  * Gets a map of parameter names to values from an array of parameter objects.  * @param {Array} parameters An array of parameter objects.  * @return {Object} A map from parameter names to their values.  */ function getParameterValues(parameters) {   return parameters.reduce((result, parameter) => {     const name = parameter.name;     let value;     if (parameter.intValue !== undefined) {       value = parameter.intValue;     } else if (parameter.stringValue !== undefined) {       value = parameter.stringValue;     } else if (parameter.datetimeValue !== undefined) {       value = new Date(parameter.datetimeValue);     } else if (parameter.boolValue !== undefined) {       value = parameter.boolValue;     }     result[name] = value;     return result;   }, {}); }