Service d'annuaire du SDK Admin

Le service d'annuaire du SDK Admin vous permet d'utiliser l'API Directory du SDK Admin dans Apps Script. Cette API permet aux administrateurs de Google Workspace domaines (y compris les revendeurs) de gérer les appareils, les groupes, les utilisateurs et les autres entités de leurs domaines.

Reference

Pour en savoir plus sur ce service, consultez la documentation de référence sur l'API Directory du SDK Admin. Comme tous les services avancés d'Apps Script, le service d'annuaire du SDK Admin utilise les mêmes objets, méthodes et paramètres que l'API publique. Pour en savoir plus, consultez Détermination des signatures de méthode.

Pour signaler des problèmes et obtenir de l'aide, consultez le guide d'assistance de l'annuaire du SDK Admin.

Exemple de code

L'exemple de code ci-dessous utilise la version 1 de l'API.

Répertorier tous les utilisateurs

Cet exemple répertorie tous les utilisateurs d'un domaine, triés par prénom.

avancé/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) {
      Logger.log('No users found.');
      return;
    }
    // Print the user's full name and email.
    for (const user of users) {
      Logger.log('%s (%s)', user.name.fullName, user.primaryEmail);
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}

Obtenir l'utilisateur

Cet exemple permet à un utilisateur d'obtenir son adresse e-mail et de consigner toutes ses données sous forme de chaîne JSON.

avancé/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 = 'liz@example.com';
  try {
    const user = AdminDirectory.Users.get(userEmail);
    Logger.log('User data:\n %s', JSON.stringify(user, null, 2));
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    Logger.log('Failed with error %s', err.message);
  }
}

Ajouter un utilisateur

Cet exemple ajoute un utilisateur au domaine, y compris uniquement les informations requises. Pour obtenir la liste complète des champs utilisateur, consultez la documentation de référence sur les API.

avancé/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: 'liz@example.com',
    name: {
      givenName: 'Elizabeth',
      familyName: 'Smith'
    },
    // Generate a random password string.
    password: Math.random().toString(36)
  };
  try {
    user = AdminDirectory.Users.insert(user);
    Logger.log('User %s created with ID %s.', user.primaryEmail, user.id);
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    Logger.log('Failed with error %s', err.message);
  }
}

Créer un alias

Cet exemple crée un alias (pseudonyme) pour un utilisateur.

avancé/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 = 'liz@example.com';
  let alias = {
    alias: 'chica@example.com'
  };
  try {
    alias = AdminDirectory.Users.Aliases.insert(alias, userEmail);
    Logger.log('Created alias %s for user %s.', alias.alias, userEmail);
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    Logger.log('Failed with error %s', err.message);
  }
}

Répertorier tous les groupes

Cet exemple répertorie tous les groupes du domaine.

avancé/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) {
      Logger.log('No groups found.');
      return;
    }
    // Print group name and email.
    for (const group of groups) {
      Logger.log('%s (%s)', group.name, group.email);
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}

Ajouter un membre au groupe

Cet exemple ajoute un utilisateur à un groupe existant du domaine.

avancé/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 = 'liz@example.com';
  // TODO (developer) - Replace groupEmail value with yours
  const groupEmail = 'bookclub@example.com';
  const member = {
    email: userEmail,
    role: 'MEMBER'
  };
  try {
    AdminDirectory.Members.insert(member, groupEmail);
    Logger.log('User %s added as a member of group %s.', userEmail, groupEmail);
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    Logger.log('Failed with error %s', err.message);
  }
}