【问题标题】:Automation Of Adding New Group Member in Google Apps--Using Google Script在 Google Apps 中自动添加新组成员--使用 Google 脚本
【发布时间】:2017-12-02 10:55:19
【问题描述】:

我正在尝试完成我想象的在 Google Apps 中相当简单的自动化,但我是 Google 脚本的新手,并且无法弄清楚执行脚本的触发器是如何工作的。

下面是一些伪代码,描述了我认为我需要做的事情:

//When a new group is created execute the function below

function addNewSalesTeamGroupMember() {
  //Get the new group's id/email address
  //Add it as a new member of the Sales Team group (id=SalesTeam@mydomain.com)
}

以下是手头任务的一些背景:

我有一个将网上论坛用作电子邮件转发器的 Google Apps 帐户。例如,有 50 个组,每个组有 1 个成员,用于为销售团队成员提供域上的电子邮件帐户(例如 salesguy@mydomain.com 是一个组,其唯一目的是转发到 Sales Guy 的第三方电子邮件地址: salesguy@yahoo.com)。还有另一个组 SalesTeam@mydomain.com,其中包含每个销售团队成员,因此经理可以立即向整个销售团队发布公告。

我的任务是编写一个脚本,该脚本将在创建时自动将创建的任何新销售成员添加到 SalesTeam 组。因此,它需要在添加新销售成员时运行(即创建新组时)。

我有API for updating Groups,但我找不到任何资源来描述如何编写触发器来告诉脚本在创建新组时执行,从而能够检索新组的地址.换句话说,我希望学习如何在 Google Scripts 中编写这部分伪代码:

//When a new group is created execute the function below

【问题讨论】:

    标签: google-apps-script automation google-groups


    【解决方案1】:

    这是可行的,但你需要在这里做一些事情。 由于谷歌应用程序脚本无法查看您是否创建了需要比较内容的组。 首先执行此代码以获取所有组并将它们放入数据库中:

    function startUp() {
      var groups = GroupsManager.getAllGroups();
      var db = ScriptDb.getMyDb();
      for (var a in groups){
        var ob = {group: groups[a].getId()};
        db.save(ob);
      }
    }
    

    所以现在我们有一个包含我们组的数据库,我们将创建一个函数来检查是否添加了新组:

    function control() {
      var db = ScriptDb.getMyDb();
      var results = db.query({});
      var groups = GroupsManager.getAllGroups();
    
    
      while (results.hasNext()) {
        var result = results.next();
        var group = GroupsManager.getGroup(result.group);
        for (var a in groups){
          if (groups[a].getId() == group.getId()){
            //things stay the same remove it from the groups array
            groups.splice(a,1);
            break;
          }
        }
      }
      //whats left in the array should be a new group
      for (var a in groups){
        //save it first
        var ob = {group: groups[a].getId()};
        db.save(ob);
        //And now tell your script to add this email to the group you want
        GroupsManager.getGroup("SalesTeam@mydomain.com").addMember(groups[a].getId());
      }
    }
    

    现在转到您的脚本触发器并设置一个时间驱动触发器,以了解您希望执行此函数的频率。

    致以诚挚的问候,

    托马斯·范拉图姆

    【讨论】:

    • 非常感谢托马斯。这是否意味着我们在使用 Google Apps 脚本时仅限于时间驱动的触发器?没有办法在动作完成时执行脚本(例如,在添加新组时),或者除了脚本之外没有开发人员工具来感知何时采取动作?再次感谢您的指导。热情地,凯文
    • 您好,感谢您的投票!我们无法在谷歌应用程序脚本中感知何时创建了组。但是您可以采用完全不同的方法并制作自定义 UserInterface 来创建新组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多