3

私は、Google Appsでかなり単純な自動化を実現しようとしていますが、Google Scriptsを初めて使用し、スクリプトを実行するためのトリガーがどのように機能するかを理解するのに苦労しています。

これが私がする必要があると思うことを説明するいくつかの擬似コードです:

//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)
}

手元のタスクの背景は次のとおりです。

グループをメールフォワーダーとして使用しているGoogleAppsアカウントを持っています。たとえば、それぞれ1人のメンバーがいる50のグループがあり、営業チームのメンバーにドメイン上のメールアカウントを提供します(たとえば、salesguy @ mydomain.comは、SalesGuyのサードパーティのメールアドレスに転送することだけを目的としたグループです。 salesguy@yahoo.com)。また、営業チームの各メンバーを含む別のグループ、SalesTeam @ mydomain.comもあるため、マネージャーは営業チーム全体に一度にアナウンスを行うことができます。

私の仕事は、作成された新しい営業メンバーを、作成時にSalesTeamグループに自動的に追加するスクリプトを作成することです。したがって、新しい営業メンバーが追加されたとき(つまり、新しいグループが作成されたとき)に実行する必要があります。

グループを更新するためのAPIを持っていますが、新しいグループが作成されたときにスクリプトを実行して新しいグループのアドレスを取得できるようにするトリガーを作成する方法を説明するリソースが見つかりません。言い換えれば、私はGoogleScriptsで擬似コードのこの部分を書く方法を学びたいと思っています。

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

1 に答える 1

0

これは実行可能ですが、ここでいくつかのことを行う必要があります。グーグルアプリスクリプトはあなたがグループを作成したかどうかを見ることができないので、あなたはものを比較する必要があります。最初にこのコードを実行して、すべてのグループを取得し、データベースに配置します。

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

次に、スクリプトトリガーに移動し、この関数を実行する頻度に時間駆動型トリガーを設定します。

よろしくお願いします。

トーマス・ヴァン・ラタム

于 2012-09-26T21:12:11.920 に答える