LoginSignup
8
12

More than 5 years have passed since last update.

GASでAdmin SDKを利用する(Directory編)その2

Posted at

とりあえず、前置き

Google Appsの管理者の皆さん、こんにちは。
日々、Appsのユーザ管理や、状況把握について、頭を悩ませているのではないでしょうか。

前回に引き続いて、GASにAdmin SDKのAPIが追加されたようなので、使ってみました。
今回は、Directory APIでグループの追加/削除/取得の方法と、ユーザのグループへの追加方法を紹介します。

実行時の権限の承認や、APIの有効化は、前回の記事を見てください。

本日のコード

架空の「第1営業部」というグループを作成/削除/取得とユーザの追加のコードをそれぞれ関数に分けています。

コード.gs
function CreateGroup() {
  var res = AdminDirectory.Groups.insert({email: "[グループのEmailアドレス]", name: "第1営業部", description: "第1営業部のグループ"});
  Logger.log(res);

  return res.id;
}

function GetGroup() {
  var res = AdminDirectory.Groups.get("[グループのid]");
  Logger.log(res);
}

function DeleteGroup() {
  var res = AdminDirectory.Groups.remove("[グループのid]");
  Logger.log(res);
}

function AddToGroup() {
  var userEmail;

  // ユーザの取得
  var user = AdminDirectory.Users.get("[メールアドレス]");
  Logger.log(user);

  for(var i = 0; i < user.emails.length; i++) {
    if(user.emails[i].primary) {
      userEmail = user.emails[i].address;
    }
  }

  // グループの取得
  var group = AdminDirectory.Groups.get("[グループのid]");
  Logger.log(group);

  // グループにユーザを追加(オーナーとして)
  var res = AdminDirectory.Members.insert({email: userEmail, role: "OWNER"}, group.email);
  Logger.log(res);
}

解説

グループの追加は、AdminDirectory.Groups.insert()を使います。
引数には、

  • グループのメールアドレス(email)
  • グループ名(name)
  • グループの詳細(description)

が含まれるオブジェクトを指定します。

戻り値に作成されたグループのidや、グループの情報が含まれるので、利用する事が可能です。
特に、idはグループを取得する時に指定するので、保存しておいた方が良いです。

グループの取得は、AdminDirectory.Groups.get()を使います。引数には、グループのidを指定します。

グループの削除は、AdminDirectory.Groups.remove()を使います。引数には、get()と同じく、グループのidを指定して下さい。

ユーザの取得は、AdminDirectory.Users.get()を使います。引数は、メールアドレスを指定すると、オブジェクトが返されます。このユーザオブジェクトは、メールアドレスを複数持っているので、user.emails[i].primaryがtrueのメールアドレスを使うようにしています。 配列の0番目がプライマリとは限らない ので、注意して下さい。

ユーザのグループへの追加は、AdminDirectory.Members.insert()を使います。
第1引数には、

  • メールアドレス(email)
  • 権限(role)

が含まれるオブジェクト、第2引数には、グループのメールアドレスを指定します。

権限には、
"OWNER"、"MANAGER"、"MEMBER"の3段階で指定できます。
"OWNER"は、グループの削除、グループの設定変更、メンバーの権限変更、メンバーの追加/削除、グループへのメッセージの送信ができます。OWNERはグループに1つしか作れません。
"MANAGER"は、Google Groups for Businessが使えるのであれば、有効になる権限で、OWNERと同じ権限があります。MANAGERはグループに複数作ることができます。
"MEMBER"は、グループのメンバーで管理権限はありません。

実行結果

ユーザのグループのページを開くと、sales1というグループに属している事が確認できました。
(Google Apps無料版でグループのリストって見れないんだろうか…。)

グループ追加.png

8
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12