Gerenciar contas de usuários

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

A API Directory oferece métodos programáticos para criar, atualizar e excluir usuários. Você também pode receber informações sobre usuários individuais ou listas de usuários que atendem a critérios específicos. Veja a seguir exemplos de algumas operações básicas de usuários.

Criar uma conta de usuário

Você pode adicionar uma conta de usuário a qualquer um dos domínios da sua conta do Google Workspace. Antes de adicionar uma conta de usuário, confirme a propriedade do domínio.

Se você tiver atualizado sua conta pessoal do Gmail para uma conta de e-mail comercial com seu próprio nome de domínio, não vai poder criar novas contas de usuário até desbloquear configurações adicionais do Google Workspace. Veja mais detalhes em Contas de e-mail comercial do G Suite atualizadas para o G Suite Basic.

Para criar uma conta de usuário em um dos seus domínios, use a seguinte solicitação POST e inclua a autorização descrita em Saiba mais sobre autenticação e autorização. Veja os escopos disponíveis para a API Directory na lista de escopos do OAuth 2.0. Para as propriedades da string de consulta de solicitação, consulte o método users.insert().

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

Todas as solicitações de criação exigem que você envie as informações necessárias para atender à solicitação. Se você estiver usando bibliotecas de cliente, elas converterão os objetos de dados da linguagem escolhida em objetos formatados de dados JSON.

Solicitação JSON

O JSON a seguir mostra um exemplo de solicitação para criar um usuário. Para a lista completa de propriedades de solicitação e resposta, consulte a Referência da 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
}

Se a taxa de consulta de solicitações de criação for muito alta, você poderá receber respostas HTTP 503 do servidor de API indicando que a cota foi excedida. Se você receber essas respostas, use um algoritmo de espera exponencial para repetir as solicitações.

Observações sobre uma nova conta:

  • Se a Conta do Google tiver comprado licenças de e-mail, uma nova caixa de e-mails será atribuída automaticamente à nova conta de usuário. Esta atribuição pode levar alguns minutos para ser concluída e ativada.
  • A edição de um campo somente leitura em uma solicitação, como isAdmin, é ignorada silenciosamente pelo serviço da API.
  • O número máximo permitido de domínios em uma conta é 600 (1 domínio principal + 599 domínios adicionais)
  • Se um usuário não foi atribuído a uma unidade organizacional específica quando a conta de usuário foi criada, a conta é exibida na unidade organizacional de nível superior. A unidade organizacional de um usuário determina a quais serviços do Google Workspace o usuário tem acesso. Se o usuário for movido para uma nova organização, o acesso dele será alterado. Para mais informações sobre estruturas organizacionais, consulte a Central de Ajuda de administração. Veja mais informações sobre como mover um usuário para outra organização em Atualizar um usuário.
  • É necessário ter um password para novas contas de usuário. Se um hashFunction for especificado, a senha precisará ser uma chave de hash válida. Se não for especificado, a senha precisará estar em texto claro e ter entre 8 e 100 caracteres ASCII. Para mais informações, consulte a referência da API.
  • Para os usuários com um plano flexível do Google Workspace, a criação de usuários com esta API terá impacto monetário e resultará em cobranças na sua conta de faturamento de cliente. Para saber mais, consulte as Informações de faturamento da API.
  • Uma conta do Google Workspace pode incluir qualquer um dos seus domínios. Em uma conta com vários domínios, os usuários de um domínio podem compartilhar serviços com usuários de outros domínios. Para saber mais sobre usuários em vários domínios, consulte as informações de vários domínios de API.
  • Pode haver contas conflitantes. Verifique se alguém que você planeja adicionar já tem uma Conta do Google. Depois siga as etapas para evitar conflitos com essas contas. Consulte Encontrar e resolver contas conflitantes.
  • Pode haver contas de visitantes. Se os usuários convidarem pessoas de fora da sua organização que não têm Contas do Google para colaborar no Drive, eles receberão contas de visitante no formato "visitante_nomedeusuário@seu_domínio.com". Se você adicionar um usuário com o mesmo nome de usuário de uma conta de visitante, a conta será convertida em uma conta completa do Google Workspace. A conta manterá as permissões atuais do arquivo do Drive. Consulte Compartilhar documentos com visitantes.

Uma resposta bem-sucedida retorna um código de status HTTP 200. Junto com o código de status, a resposta retorna as propriedades da nova conta de usuário.

Atualizar uma conta de usuário

Para atualizar uma conta de usuário, use a solicitação PUT a seguir e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o usuário único id ou um dos endereços de e-mail de alias do usuário.

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

O corpo da solicitação e da resposta contêm uma instância de User. No entanto, como a API Directory é compatível com a semântica de patch, você só precisa enviar os campos atualizados na sua solicitação.

Exemplo de solicitação

No exemplo abaixo, o givenName do usuário era "Elizabeth" quando a conta de usuário foi criada, e apenas um endereço de e-mail comercial foi fornecido.

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

A solicitação abaixo atualiza givenName de "Elizabeth" para "Liz" e também adiciona um endereço de e-mail residencial. Os dois endereços de e-mail são fornecidos totalmente porque o campo é uma matriz.

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

Uma resposta bem-sucedida retorna um código de status HTTP 200 e um recurso User com os campos atualizados.

Esteja ciente do seguinte ao atualizar o nome da conta de um usuário:

  • A renomeação de uma conta de usuário muda o endereço de e-mail principal do usuário e o domínio usado ao recuperar as informações desse usuário. Antes de renomear um usuário, recomendamos que você desconecte o usuário de todas as sessões e serviços do navegador.
  • A renomeação de uma conta de usuário pode levar até 10 minutos para ser propagada em todos os serviços.
  • Quando você renomeia um usuário, o nome antigo do usuário é mantido como um alias para garantir a entrega contínua de e-mails no caso das configurações de encaminhamento de e-mail e não está disponível como um novo nome de usuário.
  • De modo geral, recomendamos não usar o endereço de e-mail do usuário como chave para dados permanentes porque ele está sujeito a alterações.
  • Para ver uma lista completa dos efeitos da renomeação de um usuário nos apps do Google Workspace, consulte a Central de Ajuda do administrador.

Tornar um usuário administrador

Para transformar o usuário em um superadministrador, use a solicitação POST a seguir e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o usuário único id ou um dos endereços de e-mail de alias do usuário. Para ver as propriedades de solicitação e resposta, consulte Referência da API. Para mais informações sobre um superadministrador, consulte a Central de Ajuda de administração.

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

Solicitação JSON

Neste exemplo, o usuário cujo userKey é liz@example.com se tornou um superadministrador:

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

Uma resposta bem-sucedida retorna um código de status HTTP 200.

Gerenciar relações do usuário

A API Directory usa o campo relations para definir diferentes tipos de relações entre usuários. Em um ambiente comercial, as pessoas costumam usar esse campo para relações entre funcionário e assistente, mas o campo também oferece suporte a muitos outros tipos. O relacionamento é exibido no card "Pessoas relacionadas" do usuário em qualquer aplicativo do Google Workspace compatível com o cartão. Para exemplos de onde o cartão fica visível, consulte Adicionar informações ao perfil de um usuário do diretório.

Criar uma relação entre usuários

É possível definir uma relação em apenas uma direção, começando pelo usuário "proprietário", que inclui o campo relations. O type descreve a relação da outra pessoa com o usuário proprietário. Por exemplo, em uma relação de administrador e funcionário, o funcionário é o usuário proprietário, e você adiciona um campo relations à conta com o tipo manager. Para tipos de permissão, consulte a referência do objeto User.

Configure o relacionamento criando ou atualizando o usuário proprietário com um corpo de solicitação JSON que inclui o campo relations. É possível criar vários relacionamentos em uma solicitação.

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

Atualizar ou excluir uma relação

Só é possível atualizar o campo de relations como um todo. Não é possível abordar as pessoas listadas para mudar o tipo de relação ou removê-las. No exemplo acima, para remover a relação de administrador atual e tornar o administrador de linha pontilhada o administrador do usuário proprietário, atualize a conta do usuário proprietário com todos os valores do campo, como você quer.

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

Para remover todas as relações do usuário proprietário, defina relations como vazio:

{
  "relations": []
}

Recuperar um usuário

Para recuperar um usuário, use a solicitação GET a seguir e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o usuário único id ou um dos endereços de e-mail de alias do usuário. Para propriedades de solicitação e resposta, consulte a Referência da API.

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

Este exemplo retorna as propriedades da conta do usuário cujo endereço de e-mail principal ou alias é liz@example.com:

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

Resposta de JSON

Uma resposta bem-sucedida retorna um código de status HTTP 200. Junto com o código de status, a resposta retorna as propriedades da conta de usuário.

{
 "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 os usuários em um domínio

Para recuperar todos os usuários no mesmo domínio, use a seguinte solicitação GET e inclua a autorização descrita em Autorizar solicitações. Para facilitar a leitura, este exemplo usa retornos de linha:

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 propriedades de solicitação e resposta, consulte a Referência da API.

Resposta de JSON

Neste exemplo, todos os usuários no domínio example.com são retornados com no máximo dois domínios de usuário por página de resposta. Há uma nextPageToken para a lista de acompanhamento de usuários nessa resposta. Por padrão, o sistema retorna uma lista de 100 usuários em ordem alfabética do endereço de e-mail do usuário:

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

Uma resposta bem-sucedida retorna um código de status HTTP 200. Junto com o código de status, a resposta retorna duas contas de usuário no domínio 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 os usuários da conta

Para recuperar todos os usuários em uma conta que possa ter vários domínios, use a seguinte solicitação GET e inclua a autorização descrita em Autorizar solicitações. Para facilitar a leitura, este exemplo usa retornos de linha:

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
  • A string de consulta customer é o valor my_customer ou customerId.
  • Use a string my_customer para representar o customerId da sua conta.
  • Como administrador do revendedor, use o customerId do cliente de revenda. Para o customerId, use o nome do domínio principal da conta na solicitação da operação Recuperar todos os usuários em um domínio. A resposta resultante tem o valor customerId.
  • A string de consulta orderBy opcional determina se a lista é classificada pelo endereço de e-mail principal, nome da família ou nome do usuário. Ao usar orderBy, também é possível usar a string de consulta sortOrder para listar os resultados em ordem crescente ou decrescente.
  • Com a string de consulta query opcional, é possível pesquisar muitos campos em um perfil de usuário, incluindo campos principais e personalizados. Consulte Pesquisar usuários para ver exemplos.

Para propriedades de solicitação e resposta, consulte a Referência da API.

Neste exemplo, um administrador de conta está solicitando que todos os usuários da conta retornem com uma entrada de usuário em cada página de resposta. A nextPageToken vai para a próxima página de resultados:

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

Neste exemplo, um administrador de revendedor está solicitando todos os usuários de uma conta de revenda que tem o valor C03az79cb de customerId.

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

Resposta de JSON

Uma resposta bem-sucedida retorna um código de status HTTP 200. Junto com o código de status, a resposta retorna todos os usuários nesta conta:

{
 "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 usuários excluídos recentemente

Para recuperar todos os usuários excluídos nos últimos 20 dias de uma conta ou de um dos domínios da conta, use as seguintes solicitações GET e inclua a autorização descrita em Autorizar solicitações. Consulte Cancelar a exclusão de um usuário.

Para recuperar usuários excluídos nos últimos 20 dias do domínio principal ou de um subdomínio da conta, use a seguinte solicitação GET. A string de consulta domain é o nome do domínio principal. Para acessar as propriedades de solicitação e resposta do usuário, consulte a Referência da API. E, para legibilidade, este exemplo usa retornos de linha:

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
Se uma conta tiver vários domínios, você poderá recuperar usuários excluídos da conta inteira nos últimos 20 dias. Para isso, use a seguinte solicitação GET. Para facilitar a leitura, este exemplo usa devoluções de linha:
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
  • A string de consulta customer é o valor my_customer ou customerId.
  • Como administrador da conta, use a string my_customer para representar os customerId da conta.
  • Como administrador do revendedor, use o customerId do cliente de revenda. Para o customerId, use o nome do domínio principal da conta na solicitação da operação Recuperar todos os usuários em um domínio. A resposta resultante tem o valor customerId.

Para propriedades de solicitação e resposta, consulte a Referência da API.

Neste exemplo, um administrador de conta está solicitando todos os usuários excluídos na conta:

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

Resposta de JSON

Uma resposta bem-sucedida retorna um código de status HTTP 200. Junto com o código de status, a resposta retorna todos os usuários da conta excluídos nos últimos 20 dias:

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

Recuperar a foto de um usuário

A API recupera uma miniatura da foto, a mais recente foto do perfil do Gmail no Chat. Para recuperar a foto mais recente do usuário, use a seguinte solicitação GET e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o usuário id ou qualquer um dos e-mails de alias do usuário. Para propriedades de solicitação e resposta, consulte a Referência da API.

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

Neste exemplo, a foto mais recente de liz@example.com é retornada:

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

Resposta JSON

Uma resposta bem-sucedida retorna um código de status 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"
}

A codificação Base64 segura da Web das suas fotos é semelhante à RFC 4648 "base64url". Isso significa que:

  • O caractere de barra (/) é substituído pelo caractere sublinhado (_).
  • O sinal de adição (+) é substituído pelo caractere hífen (-).
  • O caractere de sinal de igual (=) é substituído pelo asterisco (*).
  • Para o preenchimento, o caractere de ponto (.) é usado em vez da definição baseURL RFC-4648, que usa o sinal de igual (=) para o preenchimento. Isso é feito para simplificar a análise de URL.
  • Mesmo que o tamanho da foto seja enviado, a API a reduz proporcionalmente em 96x96 pixels.

Se você precisar criar links compatíveis em JavaScript, a Biblioteca de fechamento do Google inclui funções de codificação e decodificação Base64 lançadas sob a licença Apache.

Recuperar um usuário como não administrador

Embora as contas de usuário só possam ser modificadas por administradores, qualquer usuário no domínio pode ler os perfis de usuário. Um usuário que não é administrador pode fazer uma solicitação users.get ou users.list com o parâmetro viewType igual a domain_public para recuperar o perfil público de um usuário. O escopo https://www.googleapis.com/auth/admin.directory.user.readonly é ideal para esse caso de uso.

A visualização domain_public permite que um usuário que não seja administrador acesse um conjunto padrão de campos principais. Para um campo personalizado, é possível escolher se ele será público ou particular ao definir o esquema.

Atualizar a foto de um usuário

Para atualizar a foto de um usuário, use a solicitação PUT a seguir e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o id ou qualquer um dos e-mails dos aliases de usuário. Para propriedades de solicitação e resposta, consulte a Referência da API.

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

Neste exemplo, a foto liz@example.com é atualizada:

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

Ao atualizar uma foto, height e width são ignorados pela API.

Resposta JSON

Uma resposta bem-sucedida retorna um código de status 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"
}

Excluir a foto de um usuário

Para excluir a foto de um usuário, use a seguinte solicitação DELETE e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o id ou qualquer um dos e-mails dos aliases de usuário. Para propriedades de solicitação e resposta, consulte a Referência da API.

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

Depois de excluída, a foto do usuário não é exibida. Sempre que a foto de um usuário for necessária, uma silhueta será exibida.

Excluir uma conta de usuário

Para excluir uma conta de usuário, use a solicitação DELETE a seguir e inclua a autorização descrita em Autorizar solicitações. O userKey pode ser o endereço de e-mail principal do usuário, o usuário único id ou um dos endereços de e-mail de alias do usuário. Para propriedades de solicitação e resposta, consulte a Referência da API.

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

Neste exemplo, a conta de usuário liz@example.com é excluída:

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

Uma resposta bem-sucedida retorna apenas um código de status HTTP 200.

Considere o seguinte antes de excluir um usuário:

Cancelar a exclusão de uma conta de usuário

Um usuário excluído nos últimos 20 dias precisa atender a determinadas condições antes da restauração da conta do usuário.

Para cancelar a exclusão de uma conta de usuário, use a seguinte solicitação POST e inclua a autorização descrita em Autorizar solicitações. O userKey é o usuário único id encontrado na resposta da operação Recuperar usuários excluídos nos últimos 20 dias. O endereço de e-mail principal do usuário ou um dos endereços de e-mail de alias do usuário não pode ser usado no userKey para esta operação. Para propriedades de solicitação e resposta, consulte a Referência da API.

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

Neste exemplo, a exclusão do usuário liz@example.com é cancelada. Todas as propriedades anteriores da conta deste usuário foram restauradas:

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

Uma resposta bem-sucedida retorna apenas um código de status HTTP 204. Para ver a conta do usuário não excluído, use a operação Recuperar um usuário.