Admin SDK Directory サービス

Admin SDK Directory サービスを使用すると、Apps Script で Admin SDK の Directory API を使用できます。この API を使用すると、 Google Workspace ドメインの管理者(販売パートナー様を含む)は、ドメイン内のデバイス、グループ、ユーザーなどのエンティティを管理できます。

リファレンス

このサービスの詳細については、Admin SDK Directory API のリファレンス ドキュメントをご覧ください。Apps Script のすべての高度なサービスと同様に、Admin SDK ディレクトリ サービスでは、公開 API と同じオブジェクト、メソッド、パラメータを使用します。詳細については、メソッド シグネチャの決定方法をご覧ください。

問題を報告したり、その他のサポートを利用したりするには、Admin SDK Directory サポートガイドをご覧ください。

サンプルコード

次のサンプルコードでは、API のバージョン 1 を使用しています。

すべてのユーザーをリストする

このサンプルでは、ドメイン内のすべてのユーザーを名で並べ替えて一覧表示します。

advanced/adminSDK.gs
/**  * Lists all the users in a domain sorted by first name.  * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/list  */ function listAllUsers() {   let pageToken;   let page;   do {     page = AdminDirectory.Users.list({       domain: 'example.com',       orderBy: 'givenName',       maxResults: 100,       pageToken: pageToken     });     const users = page.users;     if (!users) {       console.log('No users found.');       return;     }     // Print the user's full name and email.     for (const user of users) {       console.log('%s (%s)', user.name.fullName, user.primaryEmail);     }     pageToken = page.nextPageToken;   } while (pageToken); }

ユーザーの取得

このサンプルでは、メールアドレスでユーザーを取得し、すべてのデータを JSON 文字列としてログに記録します。

advanced/adminSDK.gs
/**  * Get a user by their email address and logs all of their data as a JSON string.  * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/get  */ function getUser() {   // TODO (developer) - Replace userEmail value with yours   const userEmail = '[email protected]';   try {     const user = AdminDirectory.Users.get(userEmail);     console.log('User data:\n %s', JSON.stringify(user, null, 2));   } catch (err) {     // TODO (developer)- Handle exception from the API     console.log('Failed with error %s', err.message);   } }

ユーザーを追加

このサンプルでは、必要な情報のみを含む新しいユーザーをドメインに追加します。ユーザー フィールドの一覧については、API のリファレンス ドキュメントをご覧ください。

advanced/adminSDK.gs
/**  * Adds a new user to the domain, including only the required information. For  * the full list of user fields, see the API's reference documentation:  * @see https://developers.google.com/admin-sdk/directory/v1/reference/users/insert  */ function addUser() {   let user = {     // TODO (developer) - Replace primaryEmail value with yours     primaryEmail: '[email protected]',     name: {       givenName: 'Elizabeth',       familyName: 'Smith'     },     // Generate a random password string.     password: Math.random().toString(36)   };   try {     user = AdminDirectory.Users.insert(user);     console.log('User %s created with ID %s.', user.primaryEmail, user.id);   } catch (err) {     // TODO (developer)- Handle exception from the API     console.log('Failed with error %s', err.message);   } }

エイリアスを作成する

このサンプルでは、ユーザーのエイリアス(ニックネーム)を作成します。

advanced/adminSDK.gs
/**  * Creates an alias (nickname) for a user.  * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/users.aliases/insert  */ function createAlias() {   // TODO (developer) - Replace userEmail value with yours   const userEmail = '[email protected]';   let alias = {     alias: '[email protected]'   };   try {     alias = AdminDirectory.Users.Aliases.insert(alias, userEmail);     console.log('Created alias %s for user %s.', alias.alias, userEmail);   } catch (err) {     // TODO (developer)- Handle exception from the API     console.log('Failed with error %s', err.message);   } }

すべてのグループを一覧表示する

このサンプルでは、ドメイン内のすべてのグループを一覧表示します。

advanced/adminSDK.gs
/**  * Lists all the groups in the domain.  * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/groups/list  */ function listAllGroups() {   let pageToken;   let page;   do {     page = AdminDirectory.Groups.list({       domain: 'example.com',       maxResults: 100,       pageToken: pageToken     });     const groups = page.groups;     if (!groups) {       console.log('No groups found.');       return;     }     // Print group name and email.     for (const group of groups) {       console.log('%s (%s)', group.name, group.email);     }     pageToken = page.nextPageToken;   } while (pageToken); }

グループ メンバーを追加する

このサンプルでは、ドメイン内の既存のグループにユーザーを追加します。

advanced/adminSDK.gs
/**  * Adds a user to an existing group in the domain.  * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/members/insert  */ function addGroupMember() {   // TODO (developer) - Replace userEmail value with yours   const userEmail = '[email protected]';   // TODO (developer) - Replace groupEmail value with yours   const groupEmail = '[email protected]';   const member = {     email: userEmail,     role: 'MEMBER'   };   try {     AdminDirectory.Members.insert(member, groupEmail);     console.log('User %s added as a member of group %s.', userEmail, groupEmail);   } catch (err) {     // TODO (developer)- Handle exception from the API     console.log('Failed with error %s', err.message);   } }