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 qui répondent à des critères spécifiés. Vous trouverez ci-dessous des exemples d'opérations utilisateur de base.

Créer un compte utilisateur

Vous pouvez ajouter un compte utilisateur à l'un des domaines de votre compte Google Workspace. Avant d'ajouter un compte utilisateur, vérifiez la propriété du domaine.

Si vous avez converti votre compte Gmail personnel en 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é 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 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 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 les traiter. Si vous utilisez des bibliothèques clientes, elles convertissent les objets de données de votre langue choisie en objets au format de données JSON.

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 pour les 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 à prendre en compte concernant un nouveau compte:

  • Si le compte Google a acheté des licences de messagerie, une boîte de réception est automatiquement attribuée au nouveau compte utilisateur. L'attribution peut prendre quelques minutes à être effectuée et activée.
  • La modification d'un champ en lecture seule dans une requête, comme isAdmin, est ignorée par le service 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é affecté à une unité organisationnelle spécifique lors de la création de son compte, il appartient à 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 transféré vers une nouvelle organisation, ses droits d'accès changent. 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 Modifier 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.
  • Si vous utilisez cette API pour créer des utilisateurs avec un forfait modulable Google Workspace, cela aura un impact financier et sera facturé sur votre compte de facturation client. Pour en savoir plus, consultez les informations sur la facturation des 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 de plusieurs domaines, consultez les informations sur les API pour plusieurs domaines.
  • Il se peut 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 visiteur. Si des utilisateurs invitent des personnes extérieures à votre organisation qui ne disposent pas de compte Google à collaborer dans Drive, ils recevront des comptes 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, ce 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.

Mettre à jour un compte utilisateur

Pour mettre à jour un compte 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, l'id de l'utilisateur unique ou l'une des adresses e-mail d'alias de l'utilisateur.

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

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

Exemple de requête

Dans l'exemple ci-dessous, le givenName de l'utilisateur était "Elizabeth" lorsque le compte utilisateur a été créé, 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 "Elizabeth" par "Liz" dans givenName, et ajoute également une adresse e-mail de domicile. 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"
    }
  ]
}

Une réponse réussie renvoie 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:

  • Renommer un compte utilisateur modifie son adresse e-mail principale 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 et services du navigateur.
  • Le processus de renommage d'un compte utilisateur peut prendre jusqu'à 10 minutes pour se propager dans 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 en cas de paramètres de transfert d'e-mails. Il n'est pas disponible en tant que nouveau nom d'utilisateur.
  • En règle générale, nous vous recommandons également de ne pas 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 conséquences 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 de l'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, l'id de l'utilisateur unique 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. Pour en savoir plus sur les super-administrateurs, consultez le Centre d'aide de l'administration.

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 avec les utilisateurs

L'API Directory utilise le champ relations pour définir différents types de relations entre les utilisateurs. Dans un contexte professionnel, ce champ est couramment utilisé pour les relations entre un responsable et un employé ou un assistant, mais il est également compatible avec de nombreux autres types. La relation s'affiche dans la fiche "Personnes associées" de l'utilisateur dans n'importe quelle application Google Workspace compatible avec la fiche. Pour voir des exemples de lieux 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, à partir de 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 administrateur-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 à l'aide d'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 modifier le type de relation ni supprimer les personnes listées. Dans l'exemple ci-dessus, pour supprimer la relation d'administrateur existante et faire du gestionnaire en pointillés l'administrateur 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, définissez relations sur 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, l'id de l'utilisateur unique 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.

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 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. En plus du 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 d'un même domaine, utilisez la requête GET suivante et incluez l'autorisation décrite dans la section 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 d'utilisateurs suivante. Par défaut, le système renvoie une liste de 100 utilisateurs 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 la section 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 de revendeur, utilisez l'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 de rechercher dans de nombreux champs d'un profil utilisateur, y compris les champs principaux et personnalisés. Pour obtenir des exemples, consultez la section 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 que tous les utilisateurs du compte soient renvoyés avec une entrée par utilisateur sur chaque page de réponse. nextPageToken accède à 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 les 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 de l'ensemble du compte. Pour ce faire, utilisez 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 de revendeur, utilisez l'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 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, son id ou l'un de ses alias d'adresse e-mail. 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 à l'encodage "base64url" RFC 4648. Ainsi :

  • Le caractère barre oblique (/) est remplacé par le caractère trait de soulignement (_).
  • Le signe plus (+) est remplacé par le signe moins (-).
  • Le signe égal (=) est remplacé par l'astérisque (*).
  • Pour le remplissage, le caractère point (.) est utilisé au lieu de la définition de la 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 Closure de Google inclut des fonctions d'encodage et de décodage Base64, qui sont publiées sous licence Apache.

Récupérer un utilisateur en tant qu'utilisateur non administrateur

Bien que les comptes utilisateur ne puissent être modifiés que par les administrateurs, 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 é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 de base. 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 la section Autoriser les requêtes. userKey peut être l'adresse e-mail principale de l'utilisateur, l'id de l'utilisateur ou l'adresse e-mail de l'un des 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 mise à jour:

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

Lorsque vous mettez à jour une photo, height et width sont ignorés par l'API.

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'id de l'utilisateur ou l'adresse e-mail de l'un des 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 supprimée, la photo de l'utilisateur n'est plus affichée. Partout où 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'id de l'utilisateur unique 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

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 avant 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. userKey correspond à l'id utilisateur unique trouvé 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 ou l'une des adresses e-mail d'alias de l'utilisateur ne peut pas être utilisée dans 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établi. 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 non supprimé, utilisez l'opération Récupérer un utilisateur.