Administrar las cuentas de usuario

La API de Directory proporciona métodos programáticos para crear, actualizar y borrar usuarios. También puedes obtener información sobre usuarios individuales o listas de usuarios que cumplan con criterios específicos. Los siguientes son ejemplos de algunas operaciones básicas del usuario.

Crear una cuenta de usuario

Puedes agregar una cuenta de usuario a cualquiera de los dominios de tu cuenta de Google Workspace. Antes de agregar una cuenta de usuario, confirma la propiedad del dominio.

Si actualizaste tu cuenta personal de Gmail a una cuenta de correo electrónico empresarial con tu propio nombre de dominio, no podrás crear cuentas de usuario nuevas hasta que desbloquees la configuración adicional de Google Workspace. Para averiguar detalles, consulte Actualizaciones de las cuentas de correo electrónico empresarial de G Suite a G Suite Basic.

Para crear una cuenta de usuario con uno de tus dominios, usa la siguiente solicitud POST e incluye la autorización que se describe en Más información sobre la autenticación y autorización. Puedes ver los alcances disponibles para la API de Directory en la lista de alcances de OAuth 2.0. Para obtener las propiedades de la cadena de consulta de la solicitud, consulta el método users.insert().

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

Todas las solicitudes de creación requieren que envíes la información necesaria para completar la solicitud. Si usas bibliotecas cliente, estas convierten los objetos de datos del lenguaje que elegiste en objetos con formato de datos JSON.

Solicitud JSON

En el siguiente JSON, se muestra una solicitud de ejemplo para crear un usuario. Para ver la lista completa de propiedades de solicitud y respuesta, consulta la Referencia de la 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 tu tasa de consultas para las solicitudes de creación es demasiado alta, es posible que recibas respuestas HTTP 503 del servidor de la API que indiquen que se superó la cuota. Si obtienes estas respuestas, usa un algoritmo de retirada exponencial para reintentar tus solicitudes.

Los aspectos que debes tener en cuenta sobre una cuenta nueva son los siguientes:

  • Si la Cuenta de Google compró licencias de correo, se asigna un buzón automáticamente a la cuenta de usuario nueva. Es posible que esta tarea tarde unos minutos en completarse y activarse.
  • El servicio de API ignora en silencio la edición de un campo de solo lectura en una solicitud, como isAdmin.
  • La cantidad máxima de dominios permitidos en una cuenta es 600 (1 dominio principal + 599 dominios adicionales)
  • Si un usuario no estaba asignado a una unidad organizativa específica cuando se creó la cuenta de usuario, la cuenta estará en la unidad organizativa de nivel superior. La unidad organizativa de un usuario determina a qué servicios de Google Workspace tiene acceso el usuario. Si el usuario se traslada a una organización nueva, su acceso cambia. Si deseas obtener más información sobre las estructuras de las organizaciones, consulta el Centro de ayuda para la administración. Si quieres obtener más información para mover un usuario a otra organización, consulta Actualiza un usuario.
  • Se requiere un password para las cuentas de usuario nuevas. Si se especifica un hashFunction, la contraseña debe ser una clave hash válida. Si no se especifica, debe estar en texto claro y tener entre 8 y 100 caracteres ASCII. Para obtener más información, consulta la Referencia de la API.
  • En el caso de los usuarios de un plan flexible de Google Workspace, crear usuarios con esta API tendrá un impacto monetario y generará cargos en la cuenta de facturación de tu cliente. Para obtener más información, consulta los datos de facturación de la API.
  • Una cuenta de Google Workspace puede incluir cualquiera de tus dominios. En una cuenta de varios dominios, los usuarios de un dominio pueden compartir servicios con los usuarios de otros dominios de cuenta. Para obtener más información sobre los usuarios en varios dominios, consulta la información de dominios múltiples de la API.
  • Es posible que haya cuentas en conflicto. Comprueba si las personas que planeas agregar ya tienen una Cuenta de Google. Luego, sigue los pasos para evitar conflictos con esas cuentas. Consulta Cómo buscar y resolver cuentas en conflicto.
  • Es posible que haya cuentas de visitantes. Si los usuarios invitan a personas ajenas a tu organización que no tienen Cuentas de Google a colaborar en Drive, recibirán las cuentas de visitante con el formato nombre_de_usuario_del_visitante@tu_dominio.com. Si agregas a un usuario con el mismo nombre de usuario que una cuenta de visitante, la cuenta se convertirá en una cuenta completa de Google Workspace. La cuenta conservará los permisos actuales de archivo de Drive. Consulta el artículo Cómo compartir documentos con visitantes.

Si la respuesta es correcta, se mostrará un código de estado HTTP 200. Junto con el código de estado, la respuesta muestra las propiedades de la cuenta de usuario nueva.

Actualizar una cuenta de usuario

Para actualizar una cuenta de usuario, usa la siguiente solicitud PUT e incluye la autorización que se describe en Autoriza solicitudes. El userKey puede ser la dirección de correo electrónico principal del usuario, el usuario único id o una de las direcciones de correo electrónico de alias del usuario.

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

El cuerpo de la solicitud y la respuesta contienen una instancia de User. Sin embargo, la API de Directory admite la semántica de parches, por lo que solo debes enviar los campos actualizados en tu solicitud.

Solicitud de muestra

En el siguiente ejemplo, la givenName del usuario era "Elizabeth" cuando se creó la cuenta de usuario y solo se proporcionó una dirección de correo electrónico laboral.

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

En la siguiente solicitud, se actualiza givenName de "Elizabeth" a "Liz", y también se agrega una dirección de correo electrónico particular. Ten en cuenta que ambas direcciones de correo electrónico se proporcionan por completo porque el campo es un array.

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"
    }
  ]
}

Una respuesta correcta muestra un código de estado HTTP 200 y un recurso User con los campos actualizados.

Ten en cuenta lo siguiente cuando actualices el nombre de cuenta de un usuario:

  • Cuando se cambia el nombre de una cuenta de usuario, se cambia la dirección de correo electrónico principal del usuario y el dominio que se usa para recuperar la información de este usuario. Antes de cambiar el nombre de un usuario, te recomendamos que salgas de su sesión en todos los servicios y las sesiones del navegador.
  • El proceso de cambiar el nombre de una cuenta de usuario puede tardar hasta 10 minutos en propagarse a todos los servicios.
  • Cuando cambias el nombre de un usuario, el nombre del usuario anterior se conserva como alias para garantizar la entrega continua de correo electrónico en el caso de la configuración de reenvío de correo electrónico y no está disponible como nombre de usuario nuevo.
  • En general, recomendamos no usar la dirección de correo electrónico del usuario como clave para los datos persistentes, ya que la dirección de correo electrónico está sujeta a cambios.
  • Para obtener una lista completa de los efectos de cambiar el nombre de un usuario en las apps de Google Workspace, consulta el Centro de ayuda para administradores.

Convierte a un usuario en administrador

Para convertir al usuario en administrador avanzado, usa la siguiente solicitud POST e incluye la autorización que se describe en Autoriza solicitudes. userKey puede ser la dirección de correo electrónico principal del usuario, el usuario único id o una de las direcciones de correo electrónico de alias del usuario. Para ver las propiedades de solicitud y respuesta, consulta la Referencia de la API. Para obtener más información sobre un administrador avanzado, consulta el Centro de ayuda de administración.

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

Solicitud JSON

En este ejemplo, el usuario cuyo userKey es liz@example.com se convirtió en administrador avanzado:

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

Si la respuesta es correcta, se mostrará un código de estado HTTP 200.

Administra las relaciones con los usuarios

La API de Directory usa el campo relations para definir diferentes tipos de relaciones entre usuarios. En un entorno empresarial, las personas suelen usar este campo para las relaciones entre gerentes, empleados y asistentes, pero el campo también es compatible con muchos otros tipos. La relación se muestra en la tarjeta “Personas relacionadas” del usuario en cualquier aplicación de Google Workspace que admita la tarjeta. Para ver ejemplos de dónde es visible la tarjeta, consulta Agrega información al perfil del directorio de un usuario.

Crea una relación entre usuarios

Puedes definir una relación en una sola dirección, comenzando por el usuario "propietario", cuyo registro incluye el campo relations. El type describe la relación de la otra persona con el usuario propietario. Por ejemplo, en una relación entre administrador y empleado, el empleado es el usuario propietario y agregas un campo relations a su cuenta con el tipo manager. Para conocer los tipos permitidos, consulta la referencia del objeto User.

Para configurar la relación, crea o actualiza el usuario propietario con un cuerpo de solicitud JSON que incluya el campo relations. Puedes crear varias relaciones en una sola solicitud.

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

Actualiza o borra una relación

Solo puedes actualizar el campo relations solo se puede actualizar como un todo: no puedes dirigirte a las personas individuales que aparecen en la lista para cambiar el tipo de relación o quitarlas. En el ejemplo anterior, para quitar la relación con el administrador existente y convertir al administrador de línea punteada en el administrador del usuario propietario, actualiza la cuenta del usuario propietario con todos los valores del campo como desees.

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

Para quitar todas las relaciones del usuario propietario, configura relations como vacío:

{
  "relations": []
}

Cómo recuperar un usuario

Para recuperar un usuario, usa la siguiente solicitud GET e incluye la autorización que se describe en Autoriza solicitudes. userKey puede ser la dirección de correo electrónico principal del usuario, el usuario único id o una de las direcciones de correo electrónico de alias del usuario. Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

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

En este ejemplo, se muestran las propiedades de la cuenta de usuario para el usuario cuya dirección de correo electrónico principal o alias es liz@example.com:

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

Respuesta JSON

Si la respuesta es correcta, se mostrará un código de estado HTTP 200. Junto con el código de estado, la respuesta muestra las propiedades de la cuenta de usuario.

{
 "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
}

Recuperar todos los usuarios de un dominio

Para recuperar todos los usuarios del mismo dominio, usa la siguiente solicitud GET e incluye la autorización que se describe en Autoriza solicitudes. Para facilitar la lectura, en este ejemplo se usan los resultados de línea:

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*

Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

Respuesta JSON

En este ejemplo, todos los usuarios del dominio example.com se muestran con un máximo de 2 dominios de usuario por página de respuesta. Hay un nextPageToken para la lista de usuarios de seguimiento en esta respuesta. De forma predeterminada, el sistema muestra una lista de 100 usuarios en orden alfabético de la dirección de correo electrónico del usuario:

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

Si la respuesta es correcta, se mostrará un código de estado HTTP 200. Junto con el código de estado, la respuesta muestra 2 cuentas de usuario en el dominio 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"
}

Recuperar todos los usuarios de la cuenta

Para recuperar todos los usuarios de una cuenta que puede constar de varios dominios, usa la siguiente solicitud GET e incluye la autorización que se describe en Autoriza solicitudes. Para facilitar la lectura, en este ejemplo se usan los resultados de línea:

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 cadena de consulta customer es el valor my_customer o customerId.
  • Utiliza la cadena my_customer para representar la customerId de tu cuenta.
  • Como administrador del revendedor, usa el customerId del cliente de reventa. Para customerId, usa el nombre de dominio principal de la cuenta en la solicitud de la operación Recuperar todos los usuarios de un dominio. La respuesta resultante tiene el valor customerId.
  • La cadena de consulta opcional orderBy determina si la lista está ordenada por la dirección de correo electrónico principal, el nombre de familia o el nombre de pila del usuario. Cuando usas orderBy, también puedes usar la string de consulta sortOrder para enumerar los resultados en orden ascendente o descendente.
  • La string de consulta opcional query permite realizar búsquedas en muchos campos de un perfil de usuario, incluidos los campos principales y personalizados. Consulta Búsqueda de usuarios para ver ejemplos.

Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

En este ejemplo, un administrador de cuenta solicita que todos los usuarios de la cuenta se muestren con una entrada de usuario en cada página de respuesta. nextPageToken va a la página de resultados de seguimiento:

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

En este ejemplo, el administrador de un revendedor solicita todos los usuarios de una cuenta de reventa que tiene el valor customerId de C03az79cb.

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

Respuesta JSON

Si la respuesta es correcta, se mostrará un código de estado HTTP 200. Junto con el código de estado, la respuesta muestra todos los usuarios de esta cuenta:

{
 "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"
}

Recuperar usuarios borrados recientemente

Para recuperar todos los usuarios borrados en los últimos 20 días de una cuenta o de uno de los dominios de la cuenta, usa las siguientes solicitudes GET e incluye la autorización que se describe en Autoriza solicitudes. Para recuperar un usuario, consulta Recupera un usuario.

Para recuperar usuarios borrados en el período de los últimos 20 días del dominio principal o un subdominio de la cuenta, usa la siguiente solicitud GET. La cadena de consulta domain es el nombre de dominio principal del dominio. Para conocer las propiedades de solicitud y respuesta del usuario, consulta la referencia de la API. Y, para facilitar la lectura, este ejemplo usa resultados de líneas:

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 una cuenta tiene varios dominios, puedes recuperar de toda la cuenta los usuarios borrados dentro del período de los últimos 20 días. Para ello, usa la siguiente solicitud GET. Para facilitar la lectura, en este ejemplo se usan los siguientes resultados de línea:
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 cadena de consulta customer es el valor my_customer o customerId.
  • Como administrador de la cuenta, utiliza la cadena my_customer para representar la customerId de la cuenta.
  • Como administrador del revendedor, usa el customerId del cliente de reventa. Para customerId, usa el nombre de dominio principal de la cuenta en la solicitud de la operación Recuperar todos los usuarios de un dominio. La respuesta resultante tiene el valor customerId.

Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

En este ejemplo, un administrador de cuenta solicita todos los usuarios borrados de la cuenta:

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

Respuesta JSON

Si la respuesta es correcta, se mostrará un código de estado HTTP 200. Junto con el código de estado, la respuesta muestra todos los usuarios de la cuenta borrados en los últimos 20 días:

{
 "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"
}

Cómo recuperar la foto de un usuario

La API recupera una miniatura de la foto, la foto de perfil de Google más reciente. Para recuperar la foto más reciente del usuario, usa la siguiente solicitud GET e incluye la autorización que se describe en Autoriza solicitudes. El userKey puede ser la dirección de correo electrónico principal del usuario, el id del usuario o cualquiera de los alias de correo electrónico del usuario. Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

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

En este ejemplo, se muestra la foto más reciente de liz@example.com:

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

JSON Response

Si la respuesta es correcta, se mostrará un código de estado 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"
}

La codificación base64 segura para la Web de las fotos de la API es similar a la de RFC 4648 "base64url". Esto significa lo siguiente:

  • El carácter de barra diagonal (/) se reemplaza por el carácter de guion bajo (_).
  • El signo más (+) se reemplaza por el carácter (-).
  • El signo igual (=) se reemplaza por el asterisco (*).
  • Para el relleno, se usa el carácter de punto (.) en lugar de la definición de baseURL de RFC-4648 que usa el signo igual (=) para el relleno. Esto se hace para simplificar el análisis de las URLs.
  • Independientemente del tamaño de la foto que se está subiendo, la API la reduce proporcionalmente a 96 x 96 píxeles.

Si necesitas crear vínculos compatibles desde JavaScript, la biblioteca de Google Closure incluye funciones de codificación y decodificación en Base64 que se lanzan bajo la licencia Apache.

Recuperar un usuario como no administrador

Si bien solo los administradores pueden modificar las cuentas de usuario, cualquier usuario del dominio puede leer los perfiles de usuario. Un usuario que no es administrador puede realizar una solicitud users.get o users.list con el parámetro viewType igual a domain_public para recuperar el perfil público de un usuario. El alcance https://www.googleapis.com/auth/admin.directory.user.readonly es ideal para este caso práctico.

La vista domain_public permite que un usuario que no es administrador acceda a un conjunto estándar de campos principales. Para un campo personalizado, puedes elegir si debe ser público o privado cuando defines el esquema.

Actualiza la foto de un usuario

Para actualizar la foto de un usuario, usa la siguiente solicitud PUT e incluye la autorización que se describe en Autoriza solicitudes. El userKey puede ser la dirección de correo electrónico principal del usuario, el id del usuario o cualquiera de los correos electrónicos de los alias del usuario. Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

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

En este ejemplo, la foto liz@example.com se actualiza:

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

Cuando se actualiza una foto, la API ignora height y width.

JSON Response

Si la respuesta es correcta, se mostrará un código de estado 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"
}

Cómo borrar la foto de un usuario

Para borrar la foto de un usuario, usa la siguiente solicitud DELETE e incluye la autorización que se describe en Autoriza solicitudes. El userKey puede ser la dirección de correo electrónico principal del usuario, el id del usuario o cualquiera de los correos electrónicos de los alias del usuario. Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

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

Una vez borrada, la foto del usuario no se muestra. Siempre que se requiera la foto de un usuario, se mostrará una silueta.

Borra una cuenta de usuario

Para borrar una cuenta de usuario, usa la siguiente solicitud DELETE e incluye la autorización que se describe en Autoriza solicitudes. userKey puede ser la dirección de correo electrónico principal del usuario, el usuario único id o una de las direcciones de correo electrónico de alias del usuario. Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

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

En este ejemplo, se borra la cuenta de usuario liz@example.com:

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

Si la respuesta es correcta, solo se mostrará un código de estado HTTP 200.

Aspectos importantes que debes tener en cuenta antes de borrar un usuario:

Recuperar una cuenta de usuario

Un usuario que se borró en los últimos 20 días debe cumplir con ciertas condiciones para que se pueda restablecer la cuenta.

Para recuperar una cuenta de usuario, usa la siguiente solicitud POST e incluye la autorización que se describe en Autoriza solicitudes. El userKey es el usuario único id que se encuentra en la respuesta de la operación Recuperar usuarios borrados en los últimos 20 días. La dirección de correo electrónico principal del usuario o una de las direcciones de correo electrónico de alias no se pueden usar en userKey para esta operación. Para ver las propiedades de solicitud y respuesta, consulta la referencia de la API.

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

En este ejemplo, se recupera el usuario, liz@example.com. Se restablecen todas las propiedades anteriores de la cuenta de este usuario:

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

Si la respuesta es correcta, solo se mostrará un código de estado HTTP 204. Para ver la cuenta del usuario no borrada, usa la operación Recuperar un usuario.