Możesz zdefiniować pola niestandardowe dla użytkowników w swojej domenie, dodając do niej niestandardowe schematy użytkowników. Za pomocą tych pól możesz przechowywać informacje takie jak projekty, nad którymi pracują użytkownicy, ich lokalizacje, daty zatrudnienia lub inne dane, które są przydatne w Twojej firmie.
Na początek utwórz co najmniej 1 schemat aby zdefiniować pola niestandardowe, które są odpowiednie dla Twojej domeny. Możesz określić liczbę atrybutów, takich jak nazwa pola, typ (ciąg znaków, wartość logiczna, liczba całkowita itp.), czy jest to pole z jedną czy wieloma wartościami oraz czy jego wartości mogą być wyświetlane przez wszystkich użytkowników w Twojej domenie, czy tylko przez administratorów i powiązanego użytkownika.
Po zdefiniowaniu schematu pola niestandardowe działają tak samo jak pola standardowe.
Możesz je ustawiać podczas
aktualizowania użytkowników w swojej domenie,
pobierać za pomocą metod users.get i
users.list, a także
wyszukiwać pola niestandardowe.
Ustawianie pól niestandardowych w profilu użytkownika
Aby zaktualizować lub utworzyć schemat, utwórz customSchemaswłaściwość
i dodaj ją do zasobu użytkownika. W obrębie właściwości customSchemas pola niestandardowe są grupowane według schematu w standardowym formacie JSON:
"customSchemas": {
"schema1": {
"field1": "value1",
"field2": [
{ "value": "value2a" },
{ "value": "value2b" },
...
],
...
},
"schema2": {
"field3": "value3",
...
},
...
}
Pola niestandardowe z jedną wartością są ustawiane jako proste pary klucz-wartość, np.
"field1": "value1". Pola niestandardowe z wieloma wartościami są ustawiane jako tablice obiektów, podobnie jak standardowe pola z wieloma wartościami w interfejsie API, takie jak addresses i phones. Te obiekty wartości obsługują te klucze:
| Klucze | |
|---|---|
value |
Wartość do zapisania, wymagana. |
type |
Typ wartości, opcjonalny. Możliwe wartości:
|
customType |
Niestandardowy typ wartości, opcjonalny. Musi być używany, gdy type ma wartość custom. |
Jeśli pole niestandardowe w schemacie nie zostanie określone w czasie aktualizacji, pozostanie bez zmian. Jeśli sam schemat nie zostanie określony w customFields w czasie aktualizacji, wszystkie pola niestandardowe w tym schemacie pozostaną bez zmian. Aby usunąć pole niestandardowe lub schemat niestandardowy z profilu, musisz wyraźnie ustawić jego wartość na null:
"schema1": {
"field1": null
}
Żądanie JSON
Wywołanie w poniższym przykładzie aktualizuje użytkownika i ustawia wartości dla schematu niestandardowego 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" }
]
}
}
}
Odczytywanie pól niestandardowych w profilu użytkownika
Pola niestandardowe w profilu użytkownika możesz pobrać, ustawiając projection
parametr w users.get lub
users.list na
custom lub full.
Wyszukiwanie pól niestandardowych w profilu użytkownika
Możesz wyszukiwać w polach niestandardowych za pomocą parametru query w żądaniu
users.list. Pole niestandardowe możesz wyszukać za pomocą składni schemaName.fieldName. Na przykład:
employmentData.projects:"GeneGnome"
zwraca wszystkich pracowników, którzy pracują nad projektem GeneGnome. Zapytanie
employmentData.location="Atlanta" employmentData.jobLevel>=7
zwraca wszystkich pracowników w Atlancie, którzy mają stanowisko powyżej poziomu 7. Więcej informacji znajdziesz w artykule Wyszukiwanie użytkowników.
Tworzenie niestandardowego schematu użytkownika
Niestandardowy schemat użytkownika można dodać do wszystkich domen na koncie Google Workspace. Aby utworzyć niestandardowy schemat użytkownika w swoich domenach, użyj poniższego
POST żądania i dołącz autoryzację opisaną w
artykule „Autoryzowanie żądań”. Informacje o właściwościach ciągu zapytania żądania znajdziesz w dokumentacji API.
POST https://admin.googleapis.com/admin/directory/v1/customer/<var>my_customer or customerId</var>/schemas
Wszystkie żądania tworzenia wymagają przesłania informacji potrzebnych do ich realizacji. Jeśli używasz bibliotek klienta, przekształcają one obiekty danych z wybranego języka na obiekty danych w formacie JSON.
Żądanie JSON
Ten przykład pokazuje żądanie utworzenia schematu niestandardowego. Pełną listę właściwości żądania i odpowiedzi znajdziesz w dokumentacji API.
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "false"
}
]
}
Pomyślna odpowiedź zwraca kod stanu HTTP 201, oraz właściwości nowego schematu niestandardowego.
Limity schematów niestandardowych
- Maksymalna liczba schematów niestandardowych dozwolonych na koncie to 100.
- Maksymalna liczba pól niestandardowych dozwolonych na koncie to 100.
- Maksymalna liczba znaków dozwolonych w polu
stringdla pola niestandardowego z jedną wartością to 500. W przypadku pól niestandardowych z wieloma wartościami liczba dozwolonych elementów zależy od rozmiaru przypisanych wartości. Możesz na przykład dodać 150 wartości po 100 znaków każda lub 50 wartości po 500 znaków każda. - Znaki dozwolone w schematach niestandardowych i nazwach pól to znaki alfanumeryczne, podkreślenia (
_) i łączniki (-). - Zmiana typu pola jest niedozwolona.
- Pole z jedną wartością można przekształcić w pole z wieloma wartościami, ale operacja odwrotna jest niedozwolona.
- Nie można zmienić nazwy schematów ani pól niestandardowych.
Aktualizowanie niestandardowego schematu użytkownika
Aby zaktualizować schemat niestandardowy, użyj poniższego żądania PUT i dołącz
autoryzację opisaną w
artykule „Autoryzowanie żądań”. Parametr schemaKey może być nazwą schematu lub jego unikalnym identyfikatorem id. Informacje o właściwościach żądania
i odpowiedzi znajdziesz w
dokumentacji API.
PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
Żądanie JSON
W poniższym przykładzie schemat employmentData zawierał pole JobFamily w momencie jego utworzenia. Żądanie aktualizuje schemat employmentData, aby zawierał tylko pole 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"
}
]
}
Wszystkie żądania aktualizacji wymagają przesłania informacji potrzebnych do ich realizacji.
Pomyślna odpowiedź zwraca kod stanu HTTP 200, oraz zaktualizowany zasób schematu.
Pobieranie niestandardowego schematu użytkownika
Aby pobrać schemat niestandardowy, użyj poniższego żądania GET i dołącz autoryzację opisaną w artykule „Autoryzowanie żądań”. Parametr schemaKey może być nazwą schematu lub jego unikalnym identyfikatorem id. Informacje o właściwościach żądania
i odpowiedzi znajdziesz w
dokumentacji API.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
Pomyślna odpowiedź zwraca kod stanu HTTP 200, oraz właściwości schematu niestandardowego.
{
"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"
}
]
}
Pobieranie wszystkich niestandardowych schematów użytkownika
Aby pobrać wszystkie schematy niestandardowe na tym samym koncie, użyj poniższego GET
żądania i dołącz autoryzację opisaną w
artykule „Autoryzowanie żądań”.Informacje o
właściwościach żądania i odpowiedzi znajdziesz w
dokumentacji API.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Pomyślna odpowiedź zwraca kod stanu HTTP 200, oraz schematy niestandardowe dla konta.
{
"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"
}
]
}
]
}