Usługa raportów w pakiecie Admin SDK umożliwia korzystanie z interfejsu Reports API w pakiecie Admin SDK w Google Apps Script. Ten interfejs API umożliwia administratorom domen Google Workspace (w tym sprzedawcom) tworzenie niestandardowych raportów o wykorzystaniu w swoich domenach.
Dokumentacja
Szczegółowe informacje o tej usłudze znajdziesz w dokumentacji referencyjnej interfejsu Admin SDK Reports API. Podobnie jak wszystkie zaawansowane usługi w Apps Script, usługa Raporty w pakiecie Admin SDK korzysta z tych samych obiektów, metod i parametrów co publiczny interfejs API. Więcej informacji znajdziesz w artykule Jak określane są podpisy metod.
Przykładowy kod poniżej korzysta z wersji 1 interfejsu API.
Generowanie raportu o aktywności dotyczącej logowania się
Ten przykład generuje raport o aktywności logowania z ostatniego tygodnia w formie arkusza kalkulacyjnego. Raport zawiera informacje o czasie, użytkowniku i wyniku logowania.
/** * 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 */functiongenerateLoginActivityReport(){constnow=newDate();constoneWeekAgo=newDate(now.getTime()-7*24*60*60*1000);conststartTime=oneWeekAgo.toISOString();constendTime=now.toISOString();constrows=[];letpageToken;letpage;do{page=AdminReports.Activities.list('all','login',{startTime:startTime,endTime:endTime,maxResults:500,pageToken:pageToken});constitems=page.items;if(items){for(constitemofitems){constrow=[newDate(item.id.time),item.actor.email,item.events[0].name];rows.push(row);}}pageToken=page.nextPageToken;}while(pageToken);if(rows.length===0){console.log('Noresultsreturned.');return;}constspreadsheet=SpreadsheetApp.create('GoogleWorkspaceLoginReport');constsheet=spreadsheet.getActiveSheet();// Append the headers.constheaders=['Time','User','LoginResult'];sheet.appendRow(headers);// Append the results.sheet.getRange(2,1,rows.length,headers.length).setValues(rows);console.log('Reportspreadsheetcreated:%s',spreadsheet.getUrl());}
Generowanie raportu o użytkowaniu przez użytkowników
Ten przykład generuje raport o korzystaniu przez użytkowników z aplikacji w danym dniu w zeszłym tygodniu w formie arkusza kalkulacyjnego. Raport zawiera datę, użytkownika, czas ostatniego logowania, liczbę otrzymanych e-maili i liczbę dokumentów należących do użytkownika.
/** * 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 */functiongenerateUserUsageReport(){consttoday=newDate();constoneWeekAgo=newDate(today.getTime()-7*24*60*60*1000);consttimezone=Session.getScriptTimeZone();constdate=Utilities.formatDate(oneWeekAgo,timezone,'yyyy-MM-dd');constparameters=['accounts:last_login_time','gmail:num_emails_received','drive:num_items_created'];constrows=[];letpageToken;letpage;do{page=AdminReports.UserUsageReport.get('all',date,{parameters:parameters.join(','),maxResults:500,pageToken:pageToken});if(page.warnings){for(constwarningofpage.warnings){console.log(warning.message);}}constreports=page.usageReports;if(reports){for(constreportofreports){constparameterValues=getParameterValues(report.parameters);constrow=[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('Noresultsreturned.');return;}constspreadsheet=SpreadsheetApp.create('GoogleWorkspaceUserUsageReport');constsheet=spreadsheet.getActiveSheet();// Append the headers.constheaders=['Date','User','LastLogin','NumEmailsReceived','NumDriveFilesCreated'];sheet.appendRow(headers);// Append the results.sheet.getRange(2,1,rows.length,headers.length).setValues(rows);console.log('Reportspreadsheetcreated:%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. */functiongetParameterValues(parameters){returnparameters.reduce((result,parameter)=>{constname=parameter.name;letvalue;if(parameter.intValue!==undefined){value=parameter.intValue;}elseif(parameter.stringValue!==undefined){value=parameter.stringValue;}elseif(parameter.datetimeValue!==undefined){value=newDate(parameter.datetimeValue);}elseif(parameter.boolValue!==undefined){value=parameter.boolValue;}result[name]=value;returnresult;},{});}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-12-21 UTC."],[[["The Admin SDK Reports service enables Google Workspace administrators to create custom usage reports within Apps Script, using the Admin SDK's Reports API."],["This advanced service requires prior enabling and mirrors the functionalities of the public API, using the same objects, methods, and parameters."],["Sample code is provided demonstrating how to generate login activity reports (including time, user, and login result) and user usage reports (including date, user, last login, emails received, and docs created) for a specified timeframe, outputting the data into a spreadsheet."],["Comprehensive reference documentation and a support guide for the Admin SDK Reports API are available for further information and assistance."]]],[]]