Gestion des comptes utilisateur

L'API Directory fournit des méthodes programmatiques pour créer, mettre à jour et supprimer des utilisateurs. Vous pouvez également obtenir des informations sur des utilisateurs individuels ou des listes d'utilisateurs répondant à des critères spécifiés. Voici quelques 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 la propriété du domaine.

Si vous êtes passé à un compte de messagerie professionnelle avec votre propre nom de domaine, vous ne pouvez pas créer de comptes utilisateur tant que vous n'avez pas débloqué les paramètres Google Workspace supplémentaires. 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 la section 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 les propriétés de la chaîne de requête de requête, consultez la méthode users.insert().

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

Toutes les demandes de création nécessitent que vous fournissiez les informations nécessaires pour y répondre. Si vous utilisez des bibliothèques clientes, elles convertissent les objets de données du langage de votre choix en objets au format de données JSON.

Requête JSON

Le code JSON suivant présente 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 obtenez ces réponses, utilisez un algorithme d'intervalle exponentiel entre les tentatives pour relancer vos requêtes.

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. Cette attribution peut prendre quelques minutes.
  • La modification d'un champ en lecture seule dans une requête, par exemple isAdmin, est ignorée sans notification par le service d'API.
  • Le nombre maximal de domaines autorisés par compte est de 600 (1 domaine principal + 599 domaines supplémentaires)
  • Si aucun utilisateur n'a été affecté à une unité organisationnelle spécifique lors de sa création, le compte 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 nouvelle organisation, ses droits d'accès sont modifiés. Pour en savoir plus sur les structures organisationnelles, consultez le Centre d'aide pour les administrateurs. Pour en savoir plus sur le déplacement d'un compte utilisateur vers une autre organisation, consultez Mettre à jour un compte 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. S'il n'est pas spécifié, 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 disposant d'un 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 plus d'informations, consultez les informations de facturation de l'API.
  • Un compte Google Workspace peut inclure n'importe lequel de vos domaines. Dans un compte comportant plusieurs domaines, les utilisateurs d'un domaine peuvent partager des services avec les utilisateurs d'autres domaines de compte. Pour en savoir plus sur les utilisateurs appartenant à plusieurs domaines, consultez la page Informations sur les domaines multiples de l'API.
  • Il existe peut-être des comptes en conflit. Vérifiez si une personne que vous prévoyez d'ajouter possède déjà un compte Google. Suivez ensuite la procédure indiquée pour éviter les conflits avec ces comptes. Consultez Trouver et résoudre les problèmes de comptes en conflit.
  • Il existe peut-être des comptes visiteur. Si les utilisateurs invitent des personnes externes à votre organisation qui ne possèdent pas de compte Google à collaborer dans Drive, ils recevront un compte visiteur au format nom_utilisateur_visiteur@votre_domaine.com. Si vous ajoutez un utilisateur ayant le même nom d'utilisateur qu'un compte visiteur, le compte sera converti en compte Google Workspace complet. Le compte conservera ses autorisations actuelles d'accès aux fichiers Drive. Consultez Partager des documents avec des visiteurs.

Les appels réussis renvoient un code d'état HTTP 200. Avec le code d'état, la réponse renvoie les propriétés du nouveau compte utilisateur.

Mettre à jour un compte utilisateur

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

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

Le corps de la requête et de la réponse contient tous deux une instance de User. Cependant, l'API Directory est compatible avec la sémantique "patch". Il vous suffit donc d'envoyer les champs mis à jour dans votre requête.

Exemple de requête

Dans l'exemple ci-dessous, l'adresse e-mail givenName de l'utilisateur était "Elizabeth" au moment 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 remplace givenName de "Elizabeth" par "Liz", et ajoute également une adresse e-mail personnelle. Notez que les deux adresses e-mail sont fournies intégralement, 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"
    }
  ]
}

Les réponses réussies renvoient un code d'état HTTP 200 et une ressource User avec les champs mis à jour.

Tenez compte des points suivants lorsque vous modifiez le nom de compte d'un utilisateur:

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

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 la section Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'utilisateur unique id ou l'un des alias d'adresses e-mail de l'utilisateur. Pour les propriétés de la requête et de la 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 le userKey est liz@example.com est devenu un super-administrateur:

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

Les appels réussis renvoient 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 cadre professionnel, les gens utilisent généralement ce champ pour les relations entre les assistants et les responsables, mais il en accepte également de nombreux autres. La relation s'affiche dans la fiche "Personnes associées" de l'utilisateur dans toutes les applications Google Workspace compatibles avec cette fiche. Pour voir des exemples d'endroits 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 une seule direction, à partir de l'utilisateur propriétaire, dont l'enregistrement inclut le champ relations. L'type décrit la relation entre l'autre personne et l'utilisateur propriétaire. Par exemple, dans une relation gestionnaire-employé, l'employé est l'utilisateur propriétaire et vous ajoutez un champ relations à son compte avec le type manager. Pour les types autorisés, consultez la documentation de référence sur les objets 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"
    }
  ]
}

Mettre à jour ou supprimer une relation

Vous ne pouvez mettre à jour que le champ relations dans son ensemble. Vous ne pouvez pas vous adresser à des personnes répertoriées pour modifier le type de relation ou les supprimer. Dans l'exemple ci-dessus, pour supprimer la relation de gestionnaire existante et faire du responsable linéaire en pointillé le responsable de l'utilisateur propriétaire, mettez à jour le compte de l'utilisateur propriétaire avec toutes les valeurs du champ comme vous le souhaitez.

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

Pour supprimer toutes les relations de l'utilisateur propriétaire, laissez vide le champ relations:

{
  "relations": []
}

Récupérer un utilisateur

Pour récupérer un compte utilisateur, utilisez la requête GET suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'utilisateur unique id ou l'un des alias d'adresses e-mail de l'utilisateur. Pour en savoir plus sur les propriétés des requêtes et des réponses, 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 pour l'utilisateur dont l'adresse e-mail principale ou d'alias est liz@example.com:

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

Réponse JSON

Les appels réussis renvoient un code d'état HTTP 200. Avec le code d'état, la réponse renvoie 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 la section Autoriser les requêtes. Pour une meilleure lisibilité, cet exemple utilise des retours à la ligne:

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 des requêtes et des réponses, 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 2 domaines utilisateur par page de réponse. Il existe un nextPageToken pour la liste d'utilisateurs de cette réponse. Par défaut, le système renvoie une liste de 100 utilisateurs dans l'ordre alphabétique de leur adresse e-mail:

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

Les appels réussis renvoient un code d'état HTTP 200. Avec le code d'état, la réponse renvoie deux comptes utilisateur du 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 la section Autoriser les requêtes. Pour une meilleure lisibilité, cet exemple utilise des retours à la ligne:

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 de revendeur, utilisez le customerId du client indirect. 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 en fonction de l'adresse e-mail principale, du nom de famille ou du 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 dans l'ordre croissant ou décroissant.
  • La chaîne de requête query facultative permet d'effectuer une recherche dans de nombreux champs d'un profil utilisateur, y compris des champs principaux et personnalisés. Consultez la section Rechercher des utilisateurs pour obtenir des exemples.

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

Dans cet exemple, un administrateur de compte demande que tous les utilisateurs du compte soient renvoyés avec une entrée utilisateur sur chaque page de réponse. nextPageToken permet d'accéder à 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 revendeur demande à tous les utilisateurs d'un compte indirect dont la valeur customerId est C03az79cb.

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

Réponse JSON

Les appels réussis renvoient un code d'état HTTP 200. Avec le 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 les comptes utilisateur récemment supprimés

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

Pour récupérer les utilisateurs du domaine principal ou d'un sous-domaine du compte au cours des 20 derniers jours, utilisez la requête GET suivante. La chaîne de requête domain correspond au nom du domaine principal du domaine. Pour en savoir plus sur les propriétés des requêtes et des réponses utilisateur, consultez la documentation de référence de l'API. Pour une meilleure lisibilité, cet exemple utilise des retours à la ligne:

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 de l'ensemble du compte supprimés au cours des 20 derniers jours à l'aide de la requête GET suivante. Pour une meilleure lisibilité, cet exemple utilise des retours à la ligne :
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 de revendeur, utilisez le customerId du client indirect. 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 des requêtes et des réponses, consultez la documentation de référence de l'API.

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

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

Réponse JSON

Les appels réussis renvoient un code d'état HTTP 200. Avec le code d'état, la réponse renvoie tous les utilisateurs des comptes 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 du 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 la section Autoriser les requêtes. userKey peut correspondre à l'adresse e-mail principale de l'utilisateur, id ou à n'importe quel alias d'adresse e-mail. Pour en savoir plus sur les propriétés des requêtes et des réponses, 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

Les appels réussis renvoient 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 adapté au Web de l'API pour vos photos est semblable à la norme RFC 4648 'base64url'. Ainsi :

  • La barre oblique (/) est remplacée par le trait de soulignement (_).
  • Le signe plus (+) est remplacé par le trait d'union (-).
  • Le signe égal (=) est remplacé par l'astérisque (*).
  • Pour le remplissage, le point (.) est utilisé à la place de la définition de baseURL 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 les fonctions d'encodage et de décodage Base64, disponibles sous la licence Apache.

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

Alors que les comptes utilisateur ne peuvent être modifiés que par les administrateurs, n'importe quel utilisateur du domaine peut consulter les profils utilisateur. Un utilisateur non administrateur peut effectuer une requête users.get ou users.list avec le paramètre viewType égal à 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é lors de la définition du schéma.

Modifier la photo d'un utilisateur

Pour modifier la photo d'un utilisateur, utilisez la requête PUT suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, id ou n'importe quelle adresse e-mail d'alias d'utilisateur. Pour en savoir plus sur les propriétés des requêtes et des réponses, 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 mise à jour:

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

Lors de la mise à jour d'une photo, les éléments height et width sont ignorés par l'API.

JSON Response

Les appels réussis renvoient 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 la section Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, id ou n'importe quelle adresse e-mail d'alias d'utilisateur. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API.

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

Une fois supprimée, la photo de l'utilisateur ne s'affiche plus. Chaque fois que la photo d'un utilisateur est requise, une silhouette s'affiche à la place.

Supprimer un compte utilisateur

Pour supprimer un compte utilisateur, utilisez la requête DELETE suivante et incluez l'autorisation décrite dans la section Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'utilisateur unique id ou l'un des alias d'adresses e-mail de l'utilisateur. Pour en savoir plus sur les propriétés des requêtes et des réponses, 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 compte utilisateur:

Annuler la suppression d'un compte utilisateur

Un compte 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 la section Autoriser les requêtes. userKey est l'utilisateur unique id trouvé dans la réponse de l'opération Récupérer les comptes utilisateur supprimés au cours des 20 derniers jours. L'adresse e-mail principale de l'utilisateur ou l'un de ses alias d'adresse e-mail ne peuvent pas être utilisés dans le userKey pour cette opération. Pour en savoir plus sur les propriétés des requêtes et des réponses, consultez la documentation de référence de l'API.

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

Dans cet exemple, la suppression de l'utilisateur liz@example.com a été annulée. Toutes les propriétés précédentes du compte de cet utilisateur ont été 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 restauré, utilisez l'opération Récupérer un compte utilisateur.