Admin SDK-Berichtsdienst

Mit dem Admin SDK Reports-Dienst können Sie die Reports API des Admin SDK in Apps Script verwenden. Mit dieser API können Administratoren von Google Workspace Domains (einschließlich Resellern) benutzerdefinierte Nutzungsberichte für ihre Domain erstellen.

Referenz

Ausführliche Informationen zu diesem Dienst finden Sie in der Referenzdokumentation zur Admin SDK Reports API. Wie alle erweiterten Dienste in Apps Script verwendet der Admin SDK Reports-Dienst dieselben Objekte, Methoden und Parameter wie die öffentliche API. Weitere Informationen finden Sie unter Methodensignaturen ermitteln.

Informationen zum Melden von Problemen und zum Finden von anderem Support finden Sie im Supportleitfaden für Admin SDK Reports.

Beispielcode

Im folgenden Beispielcode wird Version 1 der API verwendet.

Bericht zu Anmeldeaktivitäten erstellen

In diesem Beispiel wird ein Bericht zu Anmeldeaktivitäten für die letzte Woche als Tabellenkalkulation generiert. Der Bericht enthält die Uhrzeit, den Nutzer und das Anmeldeergebnis.

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()); }

Bericht zur Nutzeraktivität erstellen

In diesem Beispiel wird ein Nutzungsbericht für den entsprechenden Tag der letzten Woche als Tabellenkalkulation generiert. Der Bericht enthält das Datum, den Nutzer, die letzte Anmeldezeit, die Anzahl der empfangenen E‑Mails und die Anzahl der Dokumente, die der Nutzer besitzt.

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;   }, {}); }