Gérer des comptes utilisateur

L'API Directory fournit des méthodes programmatiques pour créer, modifier et supprimer des utilisateurs. Vous pouvez également obtenir des informations sur des utilisateurs individuels ou des listes d'utilisateurs qui répondent à des critères spécifiques. Vous trouverez ci-dessous des exemples d'opérations utilisateur de base.

Créer un compte utilisateur

Vous pouvez ajouter un compte utilisateur à n'importe quel domaine de votre compte Google Workspace. Avant d'ajouter un compte utilisateur, confirmez que vous êtes le propriétaire du domaine.

Si vous avez migré votre compte Gmail personnel vers un compte de messagerie professionnel avec votre propre nom de domaine, vous ne pourrez pas créer de comptes utilisateur tant que vous n'aurez pas déverrouillé d'autres paramètres Google Workspace. Pour en savoir plus, consultez Comptes de messagerie professionnelle G Suite mis à jour vers G Suite Basic.

Pour créer un compte utilisateur à l'aide de l'un de vos domaines, utilisez la requête POST suivante et incluez l'autorisation décrite dans En savoir plus sur l'authentification et l'autorisation. Vous pouvez consulter les champs d'application disponibles pour l'API Directory dans la liste des champs d'application OAuth 2.0. Pour en savoir plus sur les propriétés de la chaîne de requête de la requête, consultez la méthode users.insert().

POST https://admin.googleapis.com/admin/directory/v1/users

Pour toutes les demandes de création, vous devez fournir les informations nécessaires pour qu'elles soient traitées. Si vous utilisez des bibliothèques clientes, elles convertissent les objets de données de la langue de votre choix en objets de données JSON mis en forme.

Requête JSON

Le code JSON suivant montre un exemple de requête permettant de créer un utilisateur. Pour obtenir la liste complète des propriétés de requête et de réponse, consultez la documentation de référence de l'API.

{
"primaryEmail": "liz@example.com",
"name": {
 "givenName": "Elizabeth",
 "familyName": "Smith"
},
"suspended": false,
"password": "new user password",
"hashFunction": "SHA-1",
"changePasswordAtNextLogin": false,
"ipWhitelisted": false,
"ims": [
 {
  "type": "work",
  "protocol": "gtalk",
  "im": "liz_im@talk.example.com",
  "primary": true
 }
],
"emails": [
 {
  "address": "liz@example.com",
  "type": "home",
  "customType": "",
  "primary": true
 }
],
"addresses": [
 {
  "type": "work",
  "customType": "",
  "streetAddress": "1600 Amphitheatre Parkway",
  "locality": "Mountain View",
  "region": "CA",
  "postalCode": "94043"
 }
],
"externalIds": [
 {
  "value": "12345",
  "type": "custom",
  "customType": "employee"
 }
],
"organizations": [
 {
  "name": "Google Inc.",
  "title": "SWE",
  "primary": true,
  "type": "work",
  "description": "Software engineer"
 }
],
"phones": [
 {
  "value": "+1 nnn nnn nnnn",
  "type": "work"
 }
],
"orgUnitPath": "/corp/engineering",
"includeInGlobalAddressList": true
}

Si votre taux de requêtes de création est trop élevé, vous pouvez recevoir des réponses HTTP 503 du serveur d'API indiquant que votre quota a été dépassé. Si vous recevez ces réponses, utilisez un algorithme d'intervalle exponentiel entre les tentatives pour relancer vos requêtes.

Voici quelques points à noter concernant un nouveau compte :

  • Si le compte Google a acheté des licences de messagerie, une boîte aux lettres est automatiquement attribuée au nouveau compte utilisateur. L'attribution peut prendre quelques minutes.
  • La modification d'un champ en lecture seule dans une requête, tel que isAdmin, est ignorée par le service d'API.
  • Le nombre maximal de domaines autorisés dans un compte est de 600 (1 domaine principal + 599 domaines supplémentaires).
  • Si un utilisateur n'a pas été attribué à une unité organisationnelle spécifique lors de la création de son compte, celui-ci se trouve dans l'unité organisationnelle racine. L'unité organisationnelle d'un utilisateur détermine les services Google Workspace auxquels il a accès. Si l'utilisateur est déplacé vers une autre organisation, son accès change. Pour en savoir plus sur les structures organisationnelles, consultez le Centre d'aide pour les administrateurs. Pour savoir comment déplacer un utilisateur vers une autre organisation, consultez Mettre à jour un utilisateur.
  • Un password est requis pour les nouveaux comptes utilisateur. Si un hashFunction est spécifié, le mot de passe doit être une clé de hachage valide. Si ce n'est pas le cas, le mot de passe doit être en texte clair et comporter entre 8 et 100 caractères ASCII. Pour en savoir plus, consultez la documentation de référence de l'API.
  • Pour les utilisateurs du forfait modulable Google Workspace, la création d'utilisateurs à l'aide de cette API aura un impact financier et entraînera des frais sur le compte de facturation de votre client. Pour en savoir plus, consultez les informations sur la facturation de l'API.
  • Un compte Google Workspace peut inclure n'importe lequel de vos domaines. Dans un compte multidomaine, les utilisateurs d'un domaine peuvent partager des services avec les utilisateurs d'autres domaines du compte. Pour en savoir plus sur les utilisateurs dans plusieurs domaines, consultez les informations sur l'API pour plusieurs domaines.
  • Il est possible que des comptes soient en conflit. Vérifiez si une personne que vous souhaitez ajouter possède déjà un compte Google. Suivez ensuite la procédure pour éviter les conflits avec ces comptes. Consultez À propos des comptes en conflit.
  • Il peut y avoir des comptes visiteurs. Si des utilisateurs invitent des personnes extérieures à votre organisation qui ne possèdent pas de compte Google à collaborer dans Drive, ces personnes recevront des comptes visiteurs au format nom_d'utilisateur_du_visiteur@votre_domaine.com. Si vous ajoutez un utilisateur avec le même nom d'utilisateur qu'un compte visiteur, le compte sera converti en compte Google Workspace complet. et garde ses autorisations actuelles d'accès aux fichiers dans Drive. Consultez Partager des documents avec des visiteurs.

Une réponse réussie renvoie un code d'état HTTP 200. En plus du code d'état, la réponse renvoie les propriétés du nouveau compte utilisateur.

Modifier un compte utilisateur

Pour mettre à jour un compte utilisateur, utilisez la requête PUT suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, son id unique ou l'une de ses adresses e-mail d'alias.

PUT https://admin.googleapis.com/admin/directory/v1/users/userKey

Le corps de la requête et celui de la réponse contiennent une instance de User. Toutefois, l'API Directory est compatible avec la sémantique des correctifs. Vous n'avez donc qu'à envoyer les champs modifiés dans votre requête.

Exemple de requête

Dans l'exemple ci-dessous, le givenName de l'utilisateur était "Elizabeth" lors de la création du compte utilisateur, et seule une adresse e-mail professionnelle a été fournie.

{
  "name": {
    "givenName": "Elizabeth",
    "familyName": "Smith"
   },
  "emails": [
    {
      "address": "liz@example.com",
      "type": "work",
      "primary": true
    }
  ]
}

La requête ci-dessous met à jour givenName de "Elizabeth" à "Liz", et ajoute également une adresse e-mail personnelle. Notez que les deux adresses e-mail sont fournies en entier, car le champ est un tableau.

PUT https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

{
  "name": {
    "givenName": "Liz",
   },
  "emails": [
    {
      "address": "liz@example.com",
      "type": "work",
      "primary": true
    },
    {
      "address": "liz@home.com",
      "type": "home"
    }
  ]
}

Une réponse réussie renvoie un code d'état HTTP 200 et une ressource User avec les champs mis à jour.

Lorsque vous modifiez le nom d'un compte utilisateur, tenez compte des points suivants :

  • Lorsque vous renommez un compte utilisateur, l'adresse e-mail principale de l'utilisateur et le domaine utilisé pour récupérer ses informations sont modifiés. Avant de renommer un utilisateur, nous vous recommandons de le déconnecter de toutes les sessions de navigateur et de tous les services.
  • Le processus de changement de nom d'un compte utilisateur peut prendre jusqu'à 10 minutes pour être appliqué à tous les services.
  • Lorsque vous renommez un utilisateur, son ancien nom est conservé en tant qu'alias pour assurer la continuité de la distribution des e-mails en cas de paramètres de transfert d'e-mails. Il n'est pas disponible en tant que nouveau nom d'utilisateur.
  • En général, nous vous déconseillons également d'utiliser l'adresse e-mail de l'utilisateur comme clé pour les données persistantes, car elle est susceptible de changer.
  • Pour obtenir la liste complète des effets du changement de nom d'un utilisateur dans les applications Google Workspace, consultez le Centre d'aide pour les administrateurs.

Désigner un utilisateur comme administrateur

Pour faire d'un utilisateur un super-administrateur, utilisez la requête POST suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, son id unique ou l'une de ses adresses e-mail d'alias. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API. Pour en savoir plus sur les super-administrateurs, consultez le Centre d'aide pour les administrateurs.

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/makeAdmin

Requête JSON

Dans cet exemple, l'utilisateur dont l'userKey est liz@example.com est devenu super-administrateur :

POST https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/makeAdmin
{
 "status": true
}

Une réponse réussie renvoie un code d'état HTTP 200.

Gérer les relations utilisateur

L'API Directory utilise le champ relations pour définir différents types de relations entre les utilisateurs. Dans un contexte professionnel, les utilisateurs utilisent généralement ce champ pour les relations entre responsables et employés, et entre assistants, mais il est compatible avec de nombreux autres types de relations. La relation s'affiche dans la fiche "Personnes associées" de l'utilisateur dans toute application Google Workspace compatible avec la fiche. Pour voir des exemples d'emplacements où la fiche est visible, consultez Ajouter des informations au profil d'annuaire d'un utilisateur.

Créer une relation entre les utilisateurs

Vous ne pouvez définir une relation que dans un seul sens, en commençant par l'utilisateur "propriétaire", dont l'enregistrement inclut le champ relations. type décrit la relation de l'autre personne avec l'utilisateur propriétaire. Par exemple, dans une relation entre un responsable et un employé, l'employé est l'utilisateur propriétaire et vous ajoutez un champ relations à son compte avec le type manager. Pour connaître les types autorisés, consultez la documentation de référence sur l'objet User.

Configurez la relation en créant ou en mettant à jour l'utilisateur propriétaire avec un corps de requête JSON incluant le champ relations. Vous pouvez créer plusieurs relations dans une même requête.

{
  "relations": [
    {
      "value": "EMAIL_ADDRESS_RELATION_1",
      "type": "manager"
    },
    {
      "value": "EMAIL_ADDRESS_RELATION_2",
      "type": "dotted_line_manager"
    }
  ]
}

Modifier ou supprimer une relation

Vous ne pouvez mettre à jour le champ relations que dans son ensemble. Vous ne pouvez pas vous adresser aux personnes listées individuellement pour modifier le type de relation ou les supprimer. Dans l'exemple ci-dessus, pour supprimer la relation d'administrateur existante et faire de l'administrateur en pointillés l'administrateur de l'utilisateur propriétaire, mettez à jour le compte de l'utilisateur propriétaire avec toutes les valeurs des champs telles que vous les souhaitez désormais.

{
  "relations": [
    {
      "value": "EMAIL_ADDRESS_RELATION_2",
      "type": "manager"
    }
  ]
}

Pour supprimer toutes les relations de l'utilisateur propriétaire, définissez relations sur une chaîne vide :

{
  "relations": []
}

Récupérer un utilisateur

Pour récupérer un utilisateur, utilisez la requête GET suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, son id unique ou l'une de ses adresses e-mail d'alias. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

GET https://admin.googleapis.com/admin/directory/v1/users/userKey

Cet exemple renvoie les propriétés du compte utilisateur dont l'adresse e-mail principale ou l'alias est liz@example.com :

GET https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

Réponse JSON

Une réponse réussie renvoie un code d'état HTTP 200. Outre le code d'état, la réponse affiche les propriétés du compte utilisateur.

{
 "kind": "directory#user",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "name": {
  "givenName": "Liz",
  "familyName": "Smith",
  "fullName": "Liz Smith"
 },
 "isAdmin": true,
 "isDelegatedAdmin": false,
 "lastLoginTime": "2013-02-05T10:30:03.325Z",
 "creationTime": "2010-04-05T17:30:04.325Z",
 "agreedToTerms": true,
 "hashFunction": "SHA-1",
 "suspended": false,
 "changePasswordAtNextLogin": false,
 "ipWhitelisted": false,
 "ims": [
  {
   "type": "work",
   "protocol": "gtalk",
   "im": "lizim@talk.example.com",
   "primary": true
  }
 ],
 "emails": [
  {
   "address": "liz@example.com",
   "type": "home",
   "customType": "",
   "primary": true
  }
 ],
 "addresses": [
  {
   "type": "work",
   "customType": "",
   "streetAddress": "1600 Amphitheatre Parkway",
   "locality": "Mountain View",
   "region": "CA",
   "postalCode": "94043"
  }
 ],
 "externalIds": [
  {
   "value": "employee number",
   "type": "custom",
   "customType": "office"
  }
 ],
 "organizations": [
  {
   "name": "Google Inc.",
   "title": "SWE",
   "primary": true,
   "customType": "",
   "description": "Software engineer"
  }
 ],
 "phones": [
  {
   "value": "+1 nnn nnn nnnn",
   "type": "work"
  }
 ],
 "aliases": [
  "lizsmith@example.com",
  "lsmith@example.com"
 ],
 "nonEditableAliases": [
  "liz@test.com"
 ],
 "customerId": "C03az79cb",
 "orgUnitPath": "corp/engineering",
 "isMailboxSetup": true,
 "includeInGlobalAddressList": true
}

Récupérer tous les utilisateurs d'un domaine

Pour récupérer tous les utilisateurs du même domaine, utilisez la requête GET suivante et incluez l'autorisation décrite dans Autoriser les requêtes. Des retours à la ligne ont été inclus dans cet exemple pour le rendre plus lisible.

GET https://admin.googleapis.com/admin/directory/v1/users
?domain=primary domain name&pageToken=token for next results page
&maxResults=max number of results per page
&orderBy=email, givenName, or familyName
&sortOrder=ascending or descending
&query=email, givenName, or familyName:the query's value*

Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

Réponse JSON

Dans cet exemple, tous les utilisateurs du domaine example.com sont renvoyés, avec un maximum de deux domaines utilisateur par page de réponse. Cette réponse contient un nextPageToken pour la liste des utilisateurs suivants. Par défaut, le système renvoie une liste de 100 utilisateurs, triés par ordre alphabétique de leur adresse e-mail :

GET https://admin.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2

Une réponse réussie renvoie un code d'état HTTP 200. En plus du code d'état, la réponse renvoie deux comptes utilisateur dans le domaine example.com (maxResults=2) :

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "liz@example.com",
   "name": {
    "givenName": "Liz",
    "familyName": "Smith",
    "fullName": "Liz Smith"
   },
   "isAdmin": true,
   "isDelegatedAdmin": false,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "ims": [
    {
     "type": "work",
     "protocol": "gtalk",
     "im": "lizim@talk.example.com",
     "primary": true
    }
   ],
   "emails": [
    {
     "address": "liz@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "addresses": [
    {
     "type": "work",
     "customType": "",
     "streetAddress": "1600 Amphitheatre Parkway",
     "locality": "Mountain View",
     "region": "CA",
     "postalCode": "94043"
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "organizations": [
    {
     "name": "Google Inc.",
     "title": "SWE",
     "primary": true,
     "customType": "",
     "description": "Software engineer"
    }
   ],
   "phones": [
    {
     "value": "+1 nnn nnn nnnn",
     "type": "work"
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "user unique ID",
   "primaryEmail": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": true,
   "suspensionReason": "ADMIN",
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "contractor license number",
     "type": "custom",
     "customType": "work"
    }
   ],
   "aliases": [
    "second_admin@example.com"
   ],
   "nonEditableAliases": [
    "admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "next page token"
}

Récupérer tous les utilisateurs du compte

Pour récupérer tous les utilisateurs d'un compte pouvant comporter plusieurs domaines, utilisez la requête GET suivante et incluez l'autorisation décrite dans Autoriser les requêtes. Des retours à la ligne ont été inclus dans cet exemple pour le rendre plus lisible.

GET https://admin.googleapis.com/admin/directory/v1/users
?customer=my_customer or customerId&pageToken=token for next results page
&maxResults=max number of results per page
&orderBy=email, givenName, or familyName
&sortOrder=ascending or descending
&query=user attributes
  • La chaîne de requête customer correspond à la valeur my_customer ou customerId.
  • Utilisez la chaîne my_customer pour représenter le customerId de votre compte.
  • En tant qu'administrateur revendeur, utilisez le customerId du client revendu. Pour customerId, utilisez le nom de domaine principal du compte dans la requête de l'opération Récupérer tous les utilisateurs d'un domaine. La réponse obtenue a la valeur customerId.
  • La chaîne de requête orderBy facultative détermine si la liste est triée par adresse e-mail principale, nom de famille ou prénom de l'utilisateur. Lorsque vous utilisez orderBy, vous pouvez également utiliser la chaîne de requête sortOrder pour lister les résultats par ordre croissant ou décroissant.
  • La chaîne de requête query facultative permet d'effectuer des recherches dans de nombreux champs d'un profil utilisateur, y compris les champs principaux et personnalisés. Pour obtenir des exemples, consultez Rechercher des utilisateurs.

Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

Dans cet exemple, un administrateur de compte demande à ce que tous les utilisateurs du compte soient renvoyés avec une entrée utilisateur sur chaque page de réponse. Le nextPageToken redirige vers la page de résultats suivante :

GET https://admin.googleapis.com/admin/directory/v1/users?customer=my_customer&maxResults=1

Dans cet exemple, un administrateur de revendeur demande tous les utilisateurs d'un compte revendu dont la valeur customerId est C03az79cb.

GET https://admin.googleapis.com/admin/directory/v1/users?customer=C03az79cb&maxResults=1

Réponse JSON

Une réponse réussie renvoie un code d'état HTTP 200. En plus du code d'état, la réponse renvoie tous les utilisateurs de ce compte :

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
     "second_admin@example.com"
   ],
   "nonEditableAliases": [
     "another_admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "liz@example.com",
   "name": {
    "givenName": "Elizabeth",
    "familyName": "Smith",
    "fullName": "Elizabeth Smith"
   },
   "isAdmin": false,
   "isDelegatedAdmin": false,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": false,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "liz@example.com",
     "type": "home",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "bank"
    }
   ],
   "relations": [
    {
     "value": "liz",
     "type": "friend",
     "customType": ""
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "test3@example.com",
   "name": {
    "givenName": "Tester",
    "familyName": "Three",
    "fullName": "Tester Three"
   },
   "isAdmin": false,
   "isDelegatedAdmin": false,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "test@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
    "tester3@example.com"
   ],
   "nonEditableAliases": [
    "third@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "work_admin@example.com",
   "name": {
    "givenName": "Admin",
    "familyName": "Work",
    "fullName": "Admin Work"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "work_admin@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
    "my_alias@example.com"
   ],
   "nonEditableAliases": [
    "other_alias@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "NNNNN"
}

Récupérer des comptes utilisateur récemment supprimés

Pour récupérer tous les utilisateurs supprimés au cours des 20 derniers jours d'un compte ou de l'un de ses domaines, utilisez les requêtes GET suivantes et incluez l'autorisation décrite dans Autoriser les requêtes. Pour annuler la suppression d'un utilisateur, consultez Annuler la suppression d'un utilisateur.

Pour récupérer les utilisateurs supprimés au cours des 20 derniers jours du domaine principal ou d'un sous-domaine du compte, utilisez la requête GET suivante. La chaîne de requête domain correspond au nom de domaine principal du domaine. Pour en savoir plus sur les propriétés de requête et de réponse de l'utilisateur, consultez la documentation de référence de l'API. Des retours à la ligne ont été inclus dans cet exemple pour le rendre plus lisible.

GET https://admin.googleapis.com/admin/directory/v1/users
?domain=primary domain name&pageToken=token for next results page
&maxResults=max number of results per page
&showDeleted=true
Si un compte comporte plusieurs domaines, vous pouvez récupérer les utilisateurs supprimés au cours des 20 derniers jours dans l'ensemble du compte à l'aide de la requête GET suivante. Des retours à la ligne ont été inclus dans cet exemple pour le rendre plus lisible.
GET https://admin.googleapis.com/admin/directory/v1/users
?customer=my_customer or customerId&pageToken=token for next results page
&maxResults=max number of results per page&showDeleted=true
  • La chaîne de requête customer correspond à la valeur my_customer ou customerId.
  • En tant qu'administrateur de compte, utilisez la chaîne my_customer pour représenter le customerId de votre compte.
  • En tant qu'administrateur revendeur, utilisez le customerId du client revendu. Pour customerId, utilisez le nom de domaine principal du compte dans la requête de l'opération Récupérer tous les utilisateurs d'un domaine. La réponse obtenue a la valeur customerId.

Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

Dans cet exemple, un administrateur de compte demande la liste de tous les utilisateurs supprimés du compte :

GET https://admin.googleapis.com/admin/directory/v1/users?customer=my_customer&showDeleted=true

Réponse JSON

Une réponse réussie renvoie un code d'état HTTP 200. En plus du code d'état, la réponse renvoie tous les utilisateurs du compte supprimés au cours des 20 derniers jours :

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "user1@example.com"
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "user3@example.com"
  }
 ],
 "nextPageToken": "token for next page of deleted users"
}

Récupérer la photo d'un utilisateur

L'API récupère une vignette de photo, la dernière photo de profil Google. Pour récupérer la dernière photo de l'utilisateur, utilisez la requête GET suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'utilisateur id ou l'une de ses adresses e-mail d'alias. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

GET https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

Dans cet exemple, la dernière photo de liz@example.com est renvoyée :

GET https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/photos/thumbnail

JSON Response

Une réponse réussie renvoie un code d'état HTTP 200.

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

L'encodage base64 sécurisé pour le Web de vos photos par l'API est semblable à la norme RFC 4648 "base64url". Ainsi :

  • Le caractère barre oblique (/) est remplacé par le caractère trait de soulignement (_).
  • Le caractère plus (+) est remplacé par le caractère moins (-).
  • Le signe égal (=) est remplacé par un astérisque (*).
  • Pour le remplissage, le caractère point (.) est utilisé à la place de la définition baseURL de la RFC-4648, qui utilise le signe égal (=) pour le remplissage. Cela permet de simplifier l'analyse des URL.
  • Quelle que soit la taille de la photo importée, l'API la réduit proportionnellement à 96 x 96 pixels.

Si vous devez créer des liens compatibles à partir de JavaScript, la bibliothèque Google Closure inclut des fonctions d'encodage et de décodage Base64 qui sont publiées sous la licence Apache.

Récupérer un utilisateur en tant que non-administrateur

Bien que seuls les administrateurs puissent modifier les comptes utilisateur, tous les utilisateurs du domaine peuvent lire les profils utilisateur. Un utilisateur non administrateur peut envoyer une requête users.get ou users.list avec le paramètre viewType défini sur domain_public pour récupérer le profil public d'un utilisateur. Le champ d'application https://www.googleapis.com/auth/admin.directory.user.readonly est idéal pour ce cas d'utilisation.

La vue domain_public permet à un utilisateur non administrateur d'accéder à un ensemble standard de champs principaux. Pour un champ personnalisé, vous pouvez choisir s'il doit être public ou privé lorsque vous définissez le schéma.

Modifier la photo d'un utilisateur

Pour mettre à jour la photo d'un utilisateur, utilisez la requête PUT suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'utilisateur id ou l'une des adresses e-mail d'alias de l'utilisateur. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

PUT https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

Dans cet exemple, la photo de liz@example.com est modifiée :

PUT https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/photos/thumbnail
{
"photoData": "web safe base64 encoded photo data"
}

Lorsque vous modifiez une photo, l'API ignore height et width.

JSON Response

Une réponse réussie renvoie un code d'état HTTP 200.

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

Supprimer la photo d'un utilisateur

Pour supprimer la photo d'un utilisateur, utilisez la requête DELETE suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'utilisateur id ou l'une des adresses e-mail d'alias de l'utilisateur. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

Une fois la photo supprimée, elle n'est plus affichée. Une silhouette s'affichera à la place de la photo d'un utilisateur.

Supprimer un compte utilisateur

Pour supprimer un compte utilisateur, utilisez la requête DELETE suivante et incluez l'autorisation décrite dans Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, son id unique ou l'une de ses adresses e-mail d'alias. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey

Dans cet exemple, le compte utilisateur liz@example.com est supprimé :

DELETE https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

Une réponse réussie ne renvoie qu'un code d'état HTTP 200.

Points importants à prendre en compte avant de supprimer un utilisateur :

Annuler la suppression d'un compte utilisateur

Un utilisateur supprimé au cours des 20 derniers jours doit remplir certaines conditions pour que son compte puisse être restauré.

Pour annuler la suppression d'un compte utilisateur, utilisez la requête POST suivante et incluez l'autorisation décrite dans Autoriser les requêtes. Le userKey est le id unique de l'utilisateur qui figure dans la réponse de l'opération Récupérer les utilisateurs supprimés au cours des 20 derniers jours. L'adresse e-mail principale de l'utilisateur ou l'une de ses adresses e-mail d'alias ne peuvent pas être utilisées dans le userKey pour cette opération. Pour en savoir plus sur les propriétés de requête et de réponse, consultez la documentation de référence de l'API.

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/undelete

Dans cet exemple, l'utilisateur liz@example.com est récupéré. Toutes les propriétés de compte précédentes de cet utilisateur sont restaurées :

POST https://admin.googleapis.com/admin/directory/v1/users/12309329403209438205/undelete

Une réponse réussie ne renvoie qu'un code d'état HTTP 204. Pour afficher le compte de l'utilisateur dont la suppression a été annulée, utilisez l'opération Récupérer un utilisateur.