Alana özel kullanıcı şemaları ekleyerek alanınızdaki kullanıcılar için özel alanlar tanımlayabilirsiniz. Bu alanları, kullanıcılarınızın üzerinde çalıştığı projeler, fiziksel konumları, işe alınma tarihleri veya işletmenizin ihtiyaçlarına uygun diğer bilgileri depolamak için kullanabilirsiniz.
Başlamak için alanınız için anlamlı olan özel alanları tanımlamak üzere bir veya daha fazla şema oluşturun. Alanın adı, türü (dize, boole, tam sayı vb.), tek mi yoksa çok değerli mi olduğu ve değerlerinin alanınızdaki tüm kullanıcılar tarafından mı yoksa yalnızca yöneticiler ve ilişkili kullanıcı tarafından mı görüntülenebileceği gibi çeşitli özellikleri belirtebilirsiniz.
Bir şema tanımlandıktan sonra özel alanlar standart alanlar gibi davranır.
Alanınızdaki kullanıcıları güncellerken bu alanları ayarlayabilir, users.get
ve users.list
ile alabilir, ayrıca özel alanları arayabilirsiniz.
Kullanıcı profilinde özel alanlar ayarlama
Bir şemayı güncellemek veya oluşturmak için customSchemas
özelliği oluşturun ve kullanıcı kaynağına ekleyin. customSchemas
mülkünde özel alanlar, standart JSON biçiminde şemaya göre gruplandırılır:
"customSchemas": {
"schema1": {
"field1": "value1",
"field2": [
{ "value": "value2a" },
{ "value": "value2b" },
...
],
...
},
"schema2": {
"field3": "value3",
...
},
...
}
Tek değerli özel alanlar, "field1": "value1"
gibi basit anahtar/değer çiftleri olarak ayarlanır. Birden çok değerli özel alanlar, API'deki addresses
ve phones
gibi standart çok değerli alanlar gibi nesne dizileri olarak ayarlanır. Bu değer nesneleri aşağıdaki anahtarları destekler:
Anahtarlar | |
---|---|
value |
Depolanacak değer (zorunlu). |
type |
Değerin türü (isteğe bağlı). Olası değerler:
|
customType |
Değerin özel türü (isteğe bağlı). type , custom olarak ayarlandığında kullanılmalıdır. |
Bir şemada özel bir alan güncelleme sırasında belirtilmezse değiştirilmeden bırakılır. Bir şema, güncelleme sırasında customFields
içinde belirtilmezse söz konusu şemadaki tüm özel alanlar değiştirilmeden bırakılır. Bir profildeki özel alanı veya özel şemayı silmek için null
olarak açıkça ayarlamanız gerekir:
"schema1": {
"field1": null // deletes field1 from this profile.
}
JSON isteği
Aşağıdaki örnekteki çağrı, bir kullanıcıyı günceller ve employmentData
özel şeması için değerler belirler:
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" }
]
}
}
}
Kullanıcı profilindeki özel alanları okuma
users.get
veya users.list
isteğinde projection
parametresini custom
veya full
olarak ayarlayarak kullanıcı profilindeki özel alanları getirebilirsiniz.
Kullanıcı profilinde özel alanları arama
users.list
isteğinde query
parametresini kullanarak özel alanlarda arama yapabilirsiniz. Özel alanı schemaName.fieldName
söz diziyle istiyorsunuz. Örneğin:
employmentData.projects:"GeneGnome"
GeneGnome projesinde çalışan tüm çalışanları döndürür. Sorgu
employmentData.location="Atlanta" employmentData.jobLevel>=7
Atlanta'da iş düzeyi 7'den yüksek olan tüm çalışanları döndürür. Daha fazla bilgi için Kullanıcı arama başlıklı makaleyi inceleyin.
Özel kullanıcı şeması oluşturma
Google Workspace hesabınızın tüm alanlarına özel bir kullanıcı şeması eklenebilir. Alanlarınızda özel bir kullanıcı şeması oluşturmak için aşağıdaki POST
isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. İstek sorgu dizesi özellikleri için API Referansı'na bakın.
POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Tüm oluşturma isteklerinde, isteği yerine getirmek için gereken bilgileri göndermeniz gerekir. İstemci kitaplıkları, seçtiğiniz dildeki veri nesnelerini JSON veri biçimli nesnelere dönüştürür.
JSON isteği
Aşağıdaki örnekte, özel şema oluşturma isteği gösterilmektedir. İstek ve yanıt özelliklerinin tam listesi için API Referansı'na bakın.
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "false"
}
]
}
Başarılı bir yanıt, yeni özel şemanın özellikleriyle birlikte HTTP 201 durum kodunu döndürür.
Özel şema sınırları
- Bir hesapta izin verilen maksimum özel şema sayısı 100'dür.
- Bir hesapta izin verilen maksimum özel alan sayısı 100'dür.
- Tek değerli bir özel alan için
string
alanında izin verilen maksimum karakter sayısı 500'dir. Çok değerli özel alanlar için izin verilen öğe sayısı, atanan değerlerin boyutuna bağlıdır. Örneğin, her biri 100 karakterden oluşan 150 değer veya her biri 500 karakterden oluşan 50 değer ekleyebilirsiniz. - Özel şemalarda ve alan adlarında alfanümerik karakterler, alt çizgiler (
_
) ve kısa çizgiler (-
) kullanılabilir. - Alan türünün değiştirilmesine izin verilmez.
- Tek değerli bir alan çok değerli hale getirilebilir ancak bunun tersi işleme izin verilmez.
- Özel şemaları veya alanları yeniden adlandırmak mümkün değildir.
Özel kullanıcı şemasını güncelleme
Özel bir şemayı güncellemek için aşağıdaki PUT
isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. schemaKey
, şema adı veya benzersiz şema id
olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.
PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
JSON isteği
Aşağıdaki örnekte, employmentData
şeması ilk oluşturulduğunda bir JobFamily
alanı içeriyordu. İstek, employmentData
alanını yalnızca bir EmployeeNumber
alanı içerecek şekilde güncelliyor:
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"
}
]
}
Tüm güncelleme isteklerinde, isteği yerine getirmek için gerekli bilgileri göndermeniz gerekir.
Başarılı bir yanıt, güncellenmiş şema kaynağıyla birlikte HTTP 200 durum kodunu döndürür.
Özel kullanıcı şemasını alma
Özel bir şemayı almak için aşağıdaki GET
isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. schemaKey
, şema adı veya benzersiz şema id
olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey
Başarılı bir yanıt, özel şemanın özellikleriyle birlikte HTTP 200 durum kodunu döndürür.
{
"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"
}
]
}
Tüm özel kullanıcı şemalarını alma
Aynı hesaptaki tüm özel şemaları almak için aşağıdaki GET
isteğinde bulunun ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin.İstek ve yanıt özellikleri için API Referansı'na bakın.
GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas
Başarılı bir yanıt, hesaba ait özel şemalarla birlikte HTTP 200 durum kodu döndürür.
{
"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"
}
]
}
]
}