Google Group メンバー追加

Google Group にメンバー(メールアドレス)を追加登録します。資料請求者向けのメルマガ配信リスト(ML)を作成したり、新入社員アカウント追加時に同時にグループへの登録を行ったりすることが可能です。

    A. OAuth2通信許可設定名 (←[OAuth 2.0 設定])単一行記述必須
    B. Groupアドレスが格納されている文字列型データorチェックボックス型データを選択してください(存在しない場合、エラー)データ項目選択文字列型(単一行)or選択型(チェックボックス)必須
    C. 追加するメールアドレスが格納されている文字列型データを選択してくださいデータ項目選択文字列型(単一行)必須
    X. 通信ログが格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)
    -設定変数名設定ラベル
    Aconf_OAuth2OAuth2通信許可設定名 (←[OAuth 2.0 設定])
    Bconf_DataIdBGroupアドレスが格納されている文字列型データorチェックボックス型データを選択してください(存在しない場合、エラー)
    Cconf_DataIdC追加するメールアドレスが格納されている文字列型データを選択してください
    Xconf_DataIdX通信ログが格納される文字列型データを選択してください (更新)
    // Google Group member add via Admin SDK Directory API (ver. 20170703)
    // (c) 2017, Questetra, Inc. (the MIT License)
    
    //// == 工程コンフィグの参照 / Config Retrieving ==
    var oauth2  = configs.get( "conf_OAuth2" ) + "";
    var dataIdB = configs.get( "conf_DataIdB" ); // (returns key)
    var dataIdC = configs.get( "conf_DataIdC" ); // (returns key)
    var dataIdX = configs.get( "conf_DataIdX" ); // (returns key)
    
    //// == ワークフローデータの参照 / Data Retrieving ==
    var targetGroups = [];
    var dataDefB = engine.findDataDefinitionByNumber( dataIdB );
    if( dataDefB.matchDataType("SELECT_CHECKBOX") ){
      var selectedGroups = data.get( dataIdB );
      for( var i = 0; i < selectedGroups.size(); i++ ){ // java.util.ArrayList
        var pushGroup = selectedGroups.get(i).getValue() + "";
        targetGroups.push( pushGroup );
      }
    }else{
      var pushGroup = data.get( dataIdB ) + "";
      targetGroups.push( pushGroup );
    }
    var memberEmail = data.get( dataIdC ) + "";
    
    //// == 演算 / Calculating ==
    var accessLog = "";
    var token = httpClient.getOAuth2Token( oauth2 );
    
    for( var i = 0; i < targetGroups.length; i++  ){ // javascript array
      var uri = "https://www.googleapis.com/admin/directory/v1/groups/" + targetGroups[i] + "/members";
      var requestObj = {};
      requestObj.email = memberEmail;
      requestObj.role = "MEMBER";
      var response = httpClient.begin()
        .bearer( token )
        .body( JSON.stringify( requestObj ), "application/json" )
        .post( uri );
      accessLog += "---POST request--- " + response.getStatusCode() + "\n";
      accessLog += response.getResponseAsString() + "\n";
    }
    
    //// == ワークフローデータへの代入 / Data Updating ==
    if( dataIdX !== "" ){
      retVal.put( dataIdX, accessLog );
    }
    

    • B’: Bで選択したデータ項目に格納されているGoogle Group のアドレス
    • C’: Cで選択したデータ項目に格納されているメールアドレス
    • C’ のメールアドレスが B’ の Google Group に登録されます
    • 通信ログが X で選択したデータ項目に格納されます
    • 事前に Google Developers Console にて「Admin SDK」を有効にし、「クライアントID」と「クライアントシークレット」を取得します
    • G Suite のドメイン管理画面にて、「クライアントID」とその通信スコープについて許諾します