Gestire gli account utente

L'API Directory fornisce metodi programmatici per creare, aggiornare ed eliminare utenti. Puoi anche ottenere informazioni su singoli utenti o elenchi di utenti che soddisfano criteri specifici. Di seguito sono riportati alcuni esempi di operazioni utente di base.

Crea un account utente

Puoi aggiungere un account utente a qualsiasi dominio del tuo account Google Workspace. Prima di aggiungere un account utente, conferma la proprietà del dominio.

Se hai eseguito l'upgrade del tuo account Gmail personale a un account email aziendale con il tuo nome di dominio, non puoi creare nuovi account utente finché non sblocchi le impostazioni aggiuntive di Google Workspace. Per informazioni dettagliate, vedi Account email aziendali G Suite aggiornati a G Suite Basic.

Per creare un account utente utilizzando uno dei tuoi domini, utilizza la seguente richiesta POST e includi l'autorizzazione descritta in Informazioni su autenticazione e autorizzazione. Puoi visualizzare gli ambiti disponibili per l'API Directory nell'elenco degli ambiti OAuth 2.0. Per le proprietà della stringa di query della richiesta, consulta il metodo users.insert().

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

Tutte le richieste di creazione richiedono l'invio delle informazioni necessarie per soddisfarle. Se utilizzi le librerie client, queste convertono gli oggetti di dati dalla lingua scelta in oggetti formattati in JSON.

Richiesta JSON

Il seguente JSON mostra una richiesta di esempio per creare un utente. Per l'elenco completo delle proprietà di richiesta e risposta, consulta il riferimento 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 la frequenza delle query per le richieste di creazione è troppo elevata, potresti ricevere risposte HTTP 503 dal server API che indicano che la quota è stata superata. Se ricevi queste risposte, utilizza un algoritmo di backoff esponenziale per riprovare a inviare le richieste.

Aspetti da considerare per un nuovo account:

  • Se l'account Google ha acquistato licenze di posta, al nuovo account utente viene assegnata automaticamente una casella postale. L'assegnazione potrebbe richiedere alcuni minuti per essere completata e attivata.
  • La modifica di un campo di sola lettura in una richiesta, ad esempio isAdmin, viene ignorata automaticamente dal servizio API.
  • Il numero massimo di domini consentiti in un account è 600 (1 dominio principale + 599 domini aggiuntivi)
  • Se a un utente non è stata assegnata un'unità organizzativa specifica al momento della creazione dell'account utente, l'account si trova nell'unità organizzativa di primo livello. L'unità organizzativa di un utente determina a quali servizi Google Workspace ha accesso. Se l'utente viene spostato in una nuova organizzazione, il suo accesso cambia. Per saperne di più sulle strutture organizzative, consulta il Centro assistenza per l'amministrazione. Per saperne di più sullo spostamento di un utente in un'altra organizzazione, vedi Aggiornare un utente.
  • Per i nuovi account utente è necessario un password. Se viene specificato un hashFunction, la password deve essere una chiave hash valida. Se non è specificata, la password deve essere in testo normale e contenere tra 8 e 100 caratteri ASCII. Per saperne di più, consulta il riferimento API.
  • Per gli utenti con un piano flessibile per Google Workspace, la creazione di utenti tramite questa API avrà un impatto monetario e comporterà addebiti sul tuo account di fatturazione cliente. Per ulteriori informazioni, consulta la sezione Informazioni sulla fatturazione dell'API.
  • Un account Google Workspace può includere uno qualsiasi dei tuoi domini. In un account multidominio, gli utenti di un dominio possono condividere i servizi con gli utenti di altri domini dell'account. Per saperne di più sugli utenti in più domini, consulta le informazioni sull'API per più domini.
  • Potrebbero esserci account in conflitto. Controlla se qualcuno che hai intenzione di aggiungere ha già un Account Google. quindi segui i passaggi per evitare i conflitti con questi account. Vedi Individuare e gestire gli account in conflitto.
  • Potrebbero esserci account visitatore. Se gli utenti invitano persone esterne alla tua organizzazione che non dispongono di Account Google a collaborare su Drive, riceveranno account visitatore nel formato nome_utente_visitatore@tuo_dominio.com. Se aggiungi un utente con lo stesso nome utente di un account visitatore, l'account verrà convertito in un account Google Workspace completo. L'account manterrà le sue autorizzazioni attuali per i file di Drive. Vedi Condividere documenti con i visitatori.

Una risposta riuscita restituisce un codice di stato HTTP 200. Oltre al codice di stato, la risposta restituisce le proprietà del nuovo account utente.

Aggiornare un account utente

Per aggiornare un account utente, utilizza la seguente richiesta PUT e includi l'autorizzazione descritta in Autorizzare le richieste. userKey può essere l'indirizzo email principale, l'id univoco o uno degli indirizzi email alias dell'utente.

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

Sia il corpo della richiesta che quello della risposta contengono un'istanza di User. Tuttavia, l'API Directory supporta la semantica patch, quindi devi inviare solo i campi aggiornati nella richiesta.

Richiesta di esempio

Nell'esempio riportato di seguito, il givenName dell'utente era "Elizabeth" quando è stato creato l'account utente ed è stato fornito solo un indirizzo email di lavoro.

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

La richiesta riportata di seguito aggiorna givenName da "Elizabeth" a "Liz" e aggiunge anche un indirizzo email personale. Tieni presente che entrambi gli indirizzi email vengono forniti perché il campo è 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 risposta riuscita restituisce un codice di stato HTTP 200 e una risorsa User con i campi aggiornati.

Tieni presente quanto segue quando aggiorni il nome dell'account di un utente:

  • La ridenominazione di un account utente comporta la modifica dell'indirizzo email principale dell'utente e del dominio utilizzato per recuperare le informazioni dell'utente. Prima di rinominare un utente, ti consigliamo di disconnetterlo da tutte le sessioni del browser e dai servizi.
  • La propagazione della ridenominazione di un account utente in tutti i servizi può richiedere fino a 10 minuti.
  • Quando rinomini un utente, il vecchio nome utente viene mantenuto come alias per garantire la continuità del recapito della posta in caso di impostazioni di inoltro email e non è disponibile come nuovo nome utente.
  • In generale, consigliamo anche di non utilizzare l'indirizzo email dell'utente come chiave per i dati persistenti perché l'indirizzo email è soggetto a modifiche.
  • Per un elenco completo degli effetti della ridenominazione di un utente nelle app Google Workspace, consulta il Centro assistenza per amministratori.

Impostare un utente come amministratore

Per trasformare un utente in super amministratore, utilizza la seguente richiesta POST e includi l'autorizzazione descritta in Autorizzare le richieste. userKey può essere l'indirizzo email principale dell'utente, l'id univoco dell'utente o uno degli indirizzi email alias dell'utente. Per le proprietà della richiesta e della risposta, consulta il Riferimento API. Per saperne di più su un super amministratore, consulta il Centro assistenza per l'amministrazione.

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

Richiesta JSON

In questo esempio, l'utente il cui userKey è liz@example.com è diventato un super amministratore:

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

Una risposta riuscita restituisce un codice di stato HTTP 200.

Gestire le relazioni utente

L'API Directory utilizza il campo relations per definire diversi tipi di relazioni tra gli utenti. In un contesto aziendale, le persone utilizzano comunemente questo campo per i rapporti tra manager e dipendenti e tra assistenti, ma il campo supporta anche molti altri tipi. La relazione viene visualizzata nella scheda "Persone correlate" dell'utente in qualsiasi applicazione Google Workspace che supporta la scheda. Per esempi di dove è visibile la scheda, vedi Aggiungere informazioni al profilo della directory di un utente.

Creare una relazione tra gli utenti

Puoi definire una relazione in una sola direzione, a partire dall'utente "proprietario", il cui record include il campo relations. type descrive il rapporto dell'altra persona con l'utente proprietario. Ad esempio, in un rapporto tra amministratore e dipendente, il dipendente è l'utente proprietario e tu aggiungi un campo relations al suo account con il tipo manager. Per i tipi consentiti, consulta il riferimento all'oggetto User.

Configura la relazione creando o aggiornando l'utente proprietario con un corpo della richiesta JSON che includa il campo relations. Puoi creare più relazioni in un'unica richiesta.

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

Aggiornare o eliminare una relazione

Puoi aggiornare solo il campo relations nel suo complesso. Non puoi rivolgerti alle singole persone elencate per modificare il tipo di relazione o per rimuoverle. Nell'esempio precedente, per rimuovere la relazione esistente con l'amministratore e fare in modo che l'amministratore con linea tratteggiata diventi l'amministratore dell'utente proprietario, aggiorna l'account dell'utente proprietario con tutti i valori del campo come desideri ora.

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

Per rimuovere tutte le relazioni dell'utente proprietario, imposta relations su un valore vuoto:

{
  "relations": []
}

Recuperare un utente

Per recuperare un utente, utilizza la seguente richiesta GET e includi l'autorizzazione descritta in Autorizzare le richieste. userKey può essere l'indirizzo email principale dell'utente, l'id univoco dell'utente o uno degli indirizzi email alias dell'utente. Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

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

Questo esempio restituisce le proprietà dell'account utente per l'utente il cui indirizzo email principale o alias è liz@example.com:

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

Risposta JSON

Una risposta riuscita restituisce un codice di stato HTTP 200. Oltre al codice di stato, la risposta restituisce le proprietà dell'account utente.

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

Recuperare tutti gli utenti di un dominio

Per recuperare tutti gli utenti dello stesso dominio, utilizza la seguente richiesta GET e includi l'autorizzazione descritta nell'articolo Autorizzare le richieste. Per favorire la leggibilità, in questo esempio sono stati inseriti dei ritorni a capo.

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*

Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

Risposta JSON

In questo esempio, tutti gli utenti del dominio example.com vengono restituiti con un massimo di due domini utente per pagina di risposta. In questa risposta è presente un nextPageToken per l'elenco successivo di utenti. Per impostazione predefinita, il sistema restituisce un elenco di 100 utenti in ordine alfabetico in base all'indirizzo email dell'utente:

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

Una risposta riuscita restituisce un codice di stato HTTP 200. Oltre al codice di stato, la risposta restituisce due account utente nel 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"
}

Recupera tutti gli utenti dell'account

Per recuperare tutti gli utenti di un account che può essere costituito da più domini, utilizza la seguente richiesta GET e includi l'autorizzazione descritta in Autorizzare le richieste. Per favorire la leggibilità, in questo esempio sono stati inseriti dei ritorni a capo.

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 stringa di query customer è il valore my_customer o customerId.
  • Utilizza la stringa my_customer per rappresentare il customerId del tuo account.
  • In qualità di amministratore rivenditore, utilizza customerId del cliente rivenduto. Per customerId, utilizza il nome del dominio principale dell'account nella richiesta dell'operazione Recupera tutti gli utenti di un dominio. La risposta risultante ha il valore customerId.
  • La stringa di query facoltativa orderBy determina se l'elenco è ordinato in base all'indirizzo email principale, al cognome o al nome dell'utente. Quando utilizzi orderBy, puoi anche utilizzare la stringa di query sortOrder per elencare i risultati in ordine crescente o decrescente.
  • La stringa di query query facoltativa consente di eseguire ricerche in molti campi di un profilo utente, inclusi i campi principali e personalizzati. Per vedere degli esempi, consulta Cercare utenti.

Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

In questo esempio, un amministratore dell'account richiede che tutti gli utenti dell'account vengano restituiti con una voce utente in ogni pagina di risposta. Il nextPageToken va alla pagina successiva dei risultati:

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

In questo esempio, un amministratore rivenditore richiede tutti gli utenti di un account rivenduto con il valore customerId di C03az79cb.

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

Risposta JSON

Una risposta riuscita restituisce un codice di stato HTTP 200. Oltre al codice di stato, la risposta restituisce tutti gli utenti di questo account:

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

Recuperare gli utenti eliminati di recente

Per recuperare tutti gli utenti eliminati negli ultimi 20 giorni da un account o da uno dei domini dell'account, utilizza le seguenti richieste GET e includi l'autorizzazione descritta in Autorizzare le richieste. Per ripristinare un utente, vedi Ripristinare un utente.

Per recuperare gli utenti eliminati negli ultimi 20 giorni dal dominio principale dell'account o da un sottodominio, utilizza la seguente richiesta GET. La stringa di query domain è il nome di dominio principale del dominio. Per le proprietà della richiesta e della risposta dell'utente, consulta il riferimento API. Inoltre, per favorire la leggibilità, in questo esempio sono stati inseriti dei ritorni a capo.

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 un account ha più domini, puoi recuperare gli utenti eliminati negli ultimi 20 giorni dall'intero account utilizzando la seguente richiesta GET. Per favorire la leggibilità, in questo esempio sono stati inseriti dei ritorni a capo.
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 stringa di query customer è il valore my_customer o customerId.
  • In qualità di amministratore dell'account, utilizza la stringa my_customer per rappresentare il customerId del tuo account.
  • In qualità di amministratore rivenditore, utilizza customerId del cliente rivenduto. Per customerId, utilizza il nome del dominio principale dell'account nella richiesta dell'operazione Recupera tutti gli utenti di un dominio. La risposta risultante ha il valore customerId.

Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

In questo esempio, un amministratore dell'account richiede tutti gli utenti eliminati nell'account:

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

Risposta JSON

Una risposta riuscita restituisce un codice di stato HTTP 200. Oltre al codice di stato, la risposta restituisce tutti gli utenti dell'account eliminati negli ultimi 20 giorni:

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

Recuperare la foto di un utente

L'API recupera una miniatura della foto, l'ultima foto del profilo Google. Per recuperare l'ultima foto dell'utente, utilizza la seguente richiesta GET e includi l'autorizzazione descritta in Autorizzare le richieste. userKey può essere l'indirizzo email principale dell'utente, l'utente id o uno qualsiasi degli indirizzi email alias dell'utente. Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

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

In questo esempio, viene restituita l'ultima foto di liz@example.com:

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

Risposta JSON

Una risposta riuscita restituisce un codice di stato 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 codifica base64 sicura per il web delle tue foto dell'API è simile a "base64url" RFC 4648. Ciò significa che:

  • Il carattere barra (/) viene sostituito dal carattere trattino basso (_).
  • Il carattere segno più (+) viene sostituito con il carattere trattino (-).
  • Il carattere del segno di uguale (=) viene sostituito con l'asterisco (*).
  • Per il padding, viene utilizzato il carattere punto (.) anziché la definizione baseURL RFC-4648, che utilizza il segno uguale (=) per il padding. Questa operazione viene eseguita per semplificare l'analisi degli URL.
  • Indipendentemente dalle dimensioni della foto caricata, l'API la ridimensiona proporzionalmente a 96 x 96 pixel.

Se devi creare link compatibili da JavaScript, la libreria Google Closure include funzioni di codifica e decodifica Base64 rilasciate con licenza Apache.

Recuperare un utente come non amministratore

Mentre gli account utente possono essere modificati solo dagli amministratori, qualsiasi utente del dominio può leggere i profili utente. Un utente non amministratore può effettuare una richiesta users.get o users.list con il parametro viewType uguale a domain_public per recuperare il profilo pubblico di un utente. L'ambito https://www.googleapis.com/auth/admin.directory.user.readonly è ideale per questo caso d'uso.

La visualizzazione domain_public consente a un utente non amministratore di accedere a un insieme standard di campi principali. Per un campo personalizzato, puoi scegliere se deve essere pubblico o privato quando definisci lo schema.

Aggiornare la foto di un utente

Per aggiornare la foto di un utente, utilizza la seguente richiesta PUT e includi l'autorizzazione descritta nell'articolo Autorizzare le richieste. userKey può essere l'indirizzo email principale dell'utente, l'utente id o uno qualsiasi degli indirizzi email degli alias dell'utente. Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

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

In questo esempio, la foto di liz@example.com viene aggiornata:

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

Quando aggiorni una foto, height e width vengono ignorati dall'API.

Risposta JSON

Una risposta riuscita restituisce un codice di stato 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"
}

Eliminare la foto di un utente

Per eliminare la foto di un utente, utilizza la seguente richiesta DELETE e includi l'autorizzazione descritta nell'articolo Autorizzare le richieste. userKey può essere l'indirizzo email principale dell'utente, l'utente id o uno qualsiasi degli indirizzi email degli alias dell'utente. Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

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

Una volta eliminata, la foto dell'utente non viene mostrata. Ovunque sia richiesta la foto di un utente, verrà mostrata una sagoma.

Eliminare un account utente

Per eliminare un account utente, utilizza la seguente richiesta DELETE e includi l'autorizzazione descritta nell'articolo Autorizzare le richieste. userKey può essere l'indirizzo email principale dell'utente, l'id univoco dell'utente o uno degli indirizzi email alias dell'utente. Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

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

In questo esempio, l'account utente lisa@example.com viene eliminato:

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

Una risposta riuscita restituisce solo un codice di stato HTTP 200.

Aspetti importanti da considerare prima di eliminare un utente:

Recuperare un account utente eliminato

Un utente eliminato negli ultimi 20 giorni deve soddisfare determinate condizioni prima che il suo account possa essere ripristinato.

Per annullare l'eliminazione di un account utente, utilizza la seguente richiesta POST e includi l'autorizzazione descritta in Autorizzare le richieste. userKey è l'id utente unico trovato nella risposta dell'operazione Recupera utenti eliminati negli ultimi 20 giorni. L'indirizzo email principale o uno degli indirizzi email alias dell'utente non può essere utilizzato in userKey per questa operazione. Per le proprietà della richiesta e della risposta, consulta il Riferimento API.

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

In questo esempio, l'utente liz@example.com viene ripristinato. Vengono ripristinate tutte le proprietà dell'account precedente di questo utente:

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

Una risposta riuscita restituisce solo un codice di stato HTTP 204. Per visualizzare l'account dell'utente non eliminato, utilizza l'operazione Recupera un utente.