【问题标题】:How to pull deleted, archived, suspended users data to Google sheets from Admin SDK >> Reports API using Appscript如何从 Admin SDK >> Reports API 使用 Appscript 将已删除、存档、暂停的用户数据提取到 Google 工作表
【发布时间】:2021-05-19 14:03:17
【问题描述】:

如何使用 Appscript 从 Admin SDK >> Reports API 将已删除、存档、暂停的用户数据(用户电子邮件、删除日期、组织单位路径、存档日期、暂停日期)导入 Google 表格。谢谢。

【问题讨论】:

    标签: google-apps-script google-sheets google-api google-admin-sdk google-admin-settings-api


    【解决方案1】:

    欢迎来到 Stackoverflow。请注意,在尽可能多地发布问题时,始终包含您已完成的任何研究/示例脚本。请参阅有关 How do I ask a good question? 的指南,因为这是该社区不可分割的一部分。

    建议:

    您可以使用下面的示例脚本作为参考。该脚本基于来自Google Apps Script Quickstart的示例

    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.');
        }
    }
    

    注意:

    在运行脚本之前,您需要在您的 Apps 脚本编辑器中添加 AdminReports API:

    1.点击Services加号图标

    2。选择Admin SDK API

    3.点击version下拉菜单,选择reports_v1Add

    样本表

    结果

    运行示例脚本后,执行操作时的时间戳用户电子邮件地址和执行的操作(已暂停/Deleted/Archived) 将被添加到工作表中:

    以下是执行日志结果供参考:

    【讨论】:

    • 哇太棒了,它几乎可以工作了。唯一的问题是,它只列出今天的事件。
    • 如果我删除 max result 参数,那么我会得到大约 35 个结果,这只是过去 2 天的结果。
    • 由于这个问题现在比发布的关于“如何从 Admin SDK 将已删除、存档、暂停的用户数据提取到 Google 工作表”的内容更具体,请针对该问题发布一个新问题。
    • 完成,发布了一个新问题,下面的链接供您参考:stackoverflow.com/questions/67654227/…
    猜你喜欢
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2013-05-03
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多