カテゴリー
 管理者向けサンプル

Directory API

このサンプルでは、Directory API を使った、Google Workspace for Education ドメインの管理についてGoogle Apps Script のコードを記載しています。
Google Workspace for Education のグループ、Chromebook デバイスの情報を取得するサンプルを紹介します。
ここで扱うサンプル ソースコードは  こちら(github.com) からダウンロードできます。

グループ操作

グループ一覧の取得
グループを取得する ※スプレッドシートをコピーする Google アカウントが必要です

グループの一覧を取得します。

/**
* グループ一覧の取得
*/
function getGroupList() {

  // シート名を指定してスプレッドシート を取得
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = spreadsheet.getSheetByName('Group');

  // シート内のコンテンツをクリア
  sheet.getDataRange().clear();

  // 1行目 - ヘッダー出力
  let line = [
    'id',
    'email',
    'name',
    'description',
    'directMemberCount',
    'kind',
  ];
  let range = sheet.getRange(2, 1, 1, line.length);
  range.setValues([line]);

  // 自ドメインを指定
  let param = {
    'customer': 'my_customer',
    'maxResulsts': 200,
  };

  // グループ一覧を取得
  let response = AdminDirectory.Groups.list(param);
  if ( response ) {

    // レスポンスからグループ一覧を取得
    let groupList = response.groups;

    if (groupList) {

      for (let listIndex=0; listIndex<groupList.length; listIndex++) {
        // 結果をシートに出力
        line = [
          groupList[listIndex].id, // グループID
          groupList[listIndex].email, // メールアドレス
          groupList[listIndex].name, // グループ名
          groupList[listIndex].description, // 説明
          groupList[listIndex].directMemberCount, // 直接のメンバー数
          groupList[listIndex].kind, // タイプ
        ];
        range = sheet.getRange(3+listIndex, 1, 1, line.length);
        range.setValues([line]);
      }
    }
  }
}

AdminDirectory.Groups.list メソッドを呼び出します。パラメータとして、[customer] = [my_customer]を指定すると、自ドメインの情報が取得できます。

ChromeOS デバイス操作

デバイス一覧の取得
デバイス一覧を取得する ※スプレッドシートをコピーする Google アカウントが必要です

Directory API を使用して、ChromeOS デバイスの一覧を取得します。

/**
* ChromeOSデバイス一覧の取得
*/
function getChromeList() {

  // シート名を指定してスプレッドシートを取得
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = spreadsheet.getSheetByName('ChromeOS');

  // シート内のコンテンツをクリア
  sheet.getDataRange().clear();

  // 1行目 - ヘッダー出力
  let line = [
    'deviceId',
    'serialNumber',
    'status',
    'model',
    'osVersion',
    'macAddress',
    'orgUnitPath',
  ];
  let range = sheet.getRange(2, 1, 1, line.length);
  range.setValues([line]);

  let param = {
    'maxResulsts': 9999,
  };

  // ChromeOSデバイス一覧を取得
  let response = AdminDirectory.Chromeosdevices.list ('my_customer', param);
  if (response) {

    // レスポンスからChromeOSデバイス一覧を取得
    let chromeList = response.chromeosdevices;
    if ( chromeList ) {

      for (let listIndex=0; listIndex<chromeList.length; listIndex++) {
        // 結果をシートに出力
        line = [
          chromeList[listIndex].deviceId, // デバイスID
          chromeList[listIndex].serialNumber, // シリアル番号
          chromeList[listIndex].status, // ステータス
          chromeList[listIndex].model, // モデル情報
          chromeList[listIndex].osVersion, // オペレーティングシステムのバージョン
          chromeList[listIndex].macAddress, // ワイヤレスMACアドレス
          chromeList[listIndex].orgUnitPath, // 組織単位
        ];
        range = sheet.getRange(3+listIndex, 1, 1, line.length);
        range.setValues([line]);
      }
    }
  }
}

AdminDirectory.Chromeosdevices.list メソッドを呼び出します。パラメータとして[my_customer]を指定すると、自ドメインの情報が取得できます。