Puoi definire campi personalizzati per gli utenti del tuo dominio aggiungendo schemi utente personalizzati al dominio. Puoi utilizzare questi campi per archiviare informazioni come i progetti su cui lavorano gli utenti, le loro sedi fisiche, la data di assunzione o qualsiasi altra informazione adatta alle tue esigenze aziendali.
Per iniziare, crea uno o più schemi per definire i campi personalizzati più adatti al tuo dominio. Puoi specificare un numero di attributi, come il nome del campo, il tipo (stringa, booleano, intero e così via), se è a valore singolo o multiplo e se i suoi valori sono visibili a qualsiasi utente del tuo dominio o solo agli amministratori e all'utente associato.
Una volta definito uno schema, i campi personalizzati si comportano come i campi standard.
Puoi impostarli quando
aggiorni gli utenti del tuo dominio,
recuperarli con users.get e
users.list e anche
cercare i campi personalizzati.
Impostare campi personalizzati in un profilo utente
Per aggiornare o creare uno schema, crea una customSchemasproprietà
e aggiungila alla risorsa utente. All'interno della proprietà customSchemas, i campi personalizzati sono raggruppati per schema in formato JSON standard:
"customSchemas": {
"schema1": {
"field1": "value1",
"field2": [
{ "value": "value2a" },
{ "value": "value2b" },
...
],
...
},
"schema2": {
"field3": "value3",
...
},
...
}
I campi personalizzati a valore singolo sono impostati come semplici coppie chiave-valore, ad esempio
"field1": "value1". I campi personalizzati a più valori sono impostati come array di oggetti,
come i campi standard a più valori nell'API, ad esempio addresses e
phones. Questi oggetti valore supportano le seguenti chiavi:
| Chiavi | |
|---|---|
value |
Il valore da memorizzare, obbligatorio. |
type |
Tipo di valore, facoltativo. I valori possibili sono:
|
customType |
Tipo personalizzato del valore, facoltativo. Deve essere utilizzato quando type è impostato su custom. |
Se un campo personalizzato in uno schema non viene specificato al momento dell'aggiornamento, rimane
invariato. Se uno schema non è specificato in customFields al momento dell'aggiornamento, tutti i campi personalizzati dello schema rimangono invariati. Per eliminare un campo personalizzato o uno schema personalizzato da un profilo, devi impostarlo su null in modo esplicito:
"schema1": {
"field1": null // deletes field1 from this profile.
}
Richiesta JSON
La chiamata nell'esempio seguente aggiorna un utente e imposta i valori per lo schema personalizzato
employmentData:
PATCH https://admin.googleapis.com/admin/directory/v1/users/liz@example.com
{
"customSchemas": {
"employmentData": {
"employeeNumber": "123456789",
"jobFamily": "Engineering"
"location": "Atlanta",
"jobLevel": 8,
"projects": [
{ "value": "GeneGnome" },
{ "value": "Panopticon", "type": "work" },
{ "value": "MegaGene", "type": "custom", "customType": "secret" }
]
}
}
}
Leggere i campi personalizzati in un profilo utente
Puoi recuperare i campi personalizzati in un profilo utente impostando il parametro projection
in una richiesta users.get o
users.list su
custom o full.
Cercare campi personalizzati in un profilo utente
Puoi eseguire ricerche all'interno dei campi personalizzati utilizzando il parametro query in una
richiesta users.list. Richiedi il campo personalizzato con una sintassi schemaName.fieldName. Ad esempio:
employmentData.projects:"GeneGnome"
restituisce tutti i dipendenti che lavorano al progetto GeneGnome. La query
employmentData.location="Atlanta" employmentData.jobLevel>=7
restituisce tutti i dipendenti di Atlanta con un livello di lavoro superiore a 7. Per saperne di più, vedi Cercare utenti.
Creare uno schema utente personalizzato
È possibile aggiungere uno schema utente personalizzato a tutti i domini dell'account Google Workspace. Per creare uno schema utente personalizzato nei tuoi domini, utilizza la seguente
richiesta POST e includi l'autorizzazione descritta nell'articolo
Autorizzare le richieste. Per le proprietà della stringa di query della richiesta, consulta il riferimento API.
POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Tutte le richieste di creazione richiedono l'invio delle informazioni necessarie per soddisfare la richiesta. Se utilizzi le librerie client, queste convertono gli oggetti dati della lingua scelta in oggetti dati JSON formattati.
Richiesta JSON
Il seguente esempio mostra una richiesta per creare uno schema personalizzato. Per l'elenco completo delle proprietà di richiesta e risposta, consulta il Riferimento API.
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "false"
}
]
}
Una risposta riuscita restituisce un codice di stato HTTP 201, insieme alle proprietà del nuovo schema personalizzato.
Limiti degli schemi personalizzati
- Il numero massimo di schemi personalizzati consentiti in un account è 100.
- Il numero massimo di campi personalizzati consentiti in un account è 100.
- Il numero massimo di caratteri consentiti in un campo
stringper un campo personalizzato a valore singolo è 500. Per i campi personalizzati con più valori, il numero di elementi consentiti dipende dalle dimensioni dei valori assegnati. Ad esempio, puoi aggiungere 150 valori di 100 caratteri ciascuno o 50 valori di 500 caratteri ciascuno. - I caratteri consentiti negli schemi personalizzati e nei nomi dei campi sono caratteri alfanumerici, trattini bassi (
_) e trattini (-). - Non è consentita la modifica del tipo di un campo.
- Un campo con un unico valore può essere trasformato in un campo con più valori, ma l'operazione inversa non è consentita.
- Non è possibile rinominare schemi o campi personalizzati.
Aggiornare uno schema utente personalizzato
Per aggiornare uno schema personalizzato, utilizza la seguente richiesta PUT e includi l'autorizzazione descritta nell'articolo Autorizzare le richieste. schemaKey può essere il nome dello schema o lo schema univoco id. Per le proprietà della richiesta
e della risposta, consulta il
riferimento API.
PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
Richiesta JSON
Nell'esempio seguente, lo schema employmentData conteneva un campo JobFamily
al momento della creazione. La richiesta sta aggiornando employmentData in modo che
contenga solo un campo EmployeeNumber:
PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/schemas/employmentData
{
"kind": "admin#directory#schema",
"schemaId": "dKaYmUwmSZy5lreXyh75hQ==",
"etag": "\"St7vIdePbbDsQUvvrssynd-6JLg/PKg63GvWb7bnVSNRomd_O-Vi66w\"",
"schemaName": "employmentData",
"fields": [
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "21_B4iQIRY-dIFGFgAX-Og==",
"etag": "\"St7vIdePbbDsQUvvrssynd-6JLg/LZxiGaz6_N4R40OpKbDhOcy2qiE\"",
"fieldType": "STRING",
"fieldName": "EmployeeNumber",
"multiValued": "false"
}
]
}
Tutte le richieste di aggiornamento richiedono l'invio delle informazioni necessarie per soddisfare la richiesta.
Una risposta riuscita restituisce un codice di stato HTTP 200, insieme alla risorsa dello schema aggiornata.
Recuperare uno schema utente personalizzato
Per recuperare uno schema personalizzato, utilizza la seguente richiesta GET e includi l'autorizzazione descritta in
Autorizzare le richieste. schemaKey può essere il nome dello schema o lo schema univoco id. Per le proprietà della richiesta
e della risposta, consulta il
riferimento API.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
Una risposta riuscita restituisce un codice di stato HTTP 200, insieme alle proprietà dello schema personalizzato.
{
"kind": "admin#directory#schema",
"schemaId": "dKaYmUwmSZy5lreXyh75hQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/PKg63GvWb7bnVSNRomd_O-Vi66w\"",
"schemaName": "employmentData",
"fields": [
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "21_B4iQIRY-dIFGFgAX-Og==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/LZxiGaz6_N4R40OpKbDhOcy2qiE\"",
"fieldType": "STRING",
"fieldName": "EmployeeNumber"
},
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "ZKy0QtoMRy2QlM-4sAsPtQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/jEULI-ZiqywQIHXgc8evEcTE4Cc\"",
"fieldType": "STRING",
"fieldName": "JobFamily"
}
]
}
Recuperare tutti gli schemi utente personalizzati
Per recuperare tutti gli schemi personalizzati nello stesso account, utilizza la seguente richiesta GET e includi l'autorizzazione descritta nell'articolo Autorizzare le richieste.Per le proprietà della richiesta e della risposta, consulta il riferimento API.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Una risposta riuscita restituisce un codice di stato HTTP 200, insieme agli schemi personalizzati per l'account.
{
"kind": "admin#directory#schemas",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/iJ1eWn5AKuR-xTdwH_2IBlvSSKo\"",
"schemas": [
{
"kind": "admin#directory#schema",
"schemaId": "dKaYmUwmSZy5lreXyh75hQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/PKg63GvWb7bnVSNRomd_O-Vi66w\"",
"schemaName": "employmentData",
"fields": [
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "21_B4iQIRY-dIFGFgAX-Og==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/LZxiGaz6_N4R40OpKbDhOcy2qiE\"",
"fieldType": "STRING",
"fieldName": "EmployeeNumber"
},
{
"kind": "admin#directory#schema#fieldspec",
"fieldId": "ZKy0QtoMRy2QlM-4sAsPtQ==",
"etag": "\"KYnPjBPqr8knK6v7rpxly9BhNeY/jEULI-ZiqywQIHXgc8evEcTE4Cc\"",
"fieldType": "STRING",
"fieldName": "JobFamily"
}
]
}
]
}