Özel Kullanıcı Alanlarını Yönetme

Alana özel kullanıcı şemaları ekleyerek alan adı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ım tarihleri veya işletmenizin ihtiyaçlarına uyan diğer her şey gibi 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ı), tek mi yoksa birden çok değerli mi olduğu ve değerlerinin alanınızdaki herhangi bir kullanıcı tarafından mı yoksa yalnızca yöneticiler ve ilişkili kullanıcı tarafından mı görüntülenebileceği gibi çeşitli özellikler belirtebilirsiniz.

Şema tanımlandıktan sonra, özel alanlar standart alanlar gibi davranır. Bunları, alanınızdaki kullanıcıları güncellerken, users.get ve users.list ile getirirken ve özel alanları ararken ayarlayabilirsiniz.

Kullanıcı profilinde özel alanlar ayarlama

Bir şemayı güncellemek veya oluşturmak için bir customSchemasmülk oluşturup kullanıcı kaynağına ekleyin. customSchemas özelliğinin içinde, özel alanlar şemaya göre standart JSON biçiminde 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 birden çok değerli alanlar gibi nesne dizileri olarak ayarlanır. Bu değer nesneleri aşağıdaki anahtarları destekler:

Anahtarlar
value Depolanacak değer; gerekli.
type Değerin türü (isteğe bağlı). Olası değerler:
  • custom
  • home
  • other
  • work
customType Değerin özel türü (isteğe bağlı). type, custom olarak ayarlandığında kullanılmalıdır.

Güncelleme zamanında şemadaki bir özel alan belirtilmemişse bu alan değiştirilmeden bırakılır. Güncelleme zamanında şemanın kendisi customFields içinde belirtilmemişse bu şemadaki tüm özel alanlar değiştirilmez. Profilden özel bir alanı veya özel şemayı silmek için bunu açık bir şekilde null olarak ayarlamanız gerekir:

"schema1": {
  "field1": null // deletes field1 from this profile.
}

JSON isteği

Aşağıdaki örnekte bulunan çağrı, bir kullanıcıyı günceller ve employmentData özel şeması için değerleri ayarlar:

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ğindeki projection parametresini custom veya full değerine ayarlayarak kullanıcı profilindeki özel alanları getirebilirsiniz.

Bir kullanıcı profilindeki özel alanları arama

Bir users.list isteğindeki query parametresini kullanarak özel alanlarda arama yapabilirsiniz. Özel alanı bir schemaName.fieldNamesöz dizimiyle istersiniz. Örneğin:

employmentData.projects:"GeneGnome"

GeneGnome projesinde çalışan tüm çalışanları iade eder. Sorgu

employmentData.location="Atlanta" employmentData.jobLevel>=7

7. iş seviyesinin üzerindeki tüm çalışanları geri döndürür. Daha fazla bilgi için Kullanıcı Arama konusuna bakın.

Özel kullanıcı şeması oluşturma

Özel kullanıcı şeması, Google Workspace hesabınızın tüm alanlarına 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 dahil edin. İ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ı kullanıyorsanız bu 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 bir ş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 bir HTTP 201 durum kodu 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'dür. Birden çok değerli özel alanlarda 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 karakter uzunluğunda 50 değer ekleyebilirsiniz.
  • Özel şemalarda ve alan adlarında izin verilen karakterler alfasayısal karakter, alt çizgi (_) ve kısa çizgidir (-).
  • Alan türünün değiştirilmesine izin verilmez.
  • Tek değerli bir alan birden çok değerli yapılabilir, ancak ters işleme izin verilmez.
  • Özel şemalar veya alanlar yeniden adlandırılamaz.

Özel kullanıcı şeması 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 dahil edin. 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ı başlangıçta bir JobFamily alanı içeriyordu. İstek, employmentData öğesini 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 gereken bilgileri göndermeniz gerekir.

Başarılı bir yanıt, güncellenmiş şema kaynağıyla birlikte bir HTTP 200 durum kodu döndürür.

Özel kullanıcı şeması alma

Özel bir şema almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi dahil edin. 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 bir HTTP 200 durum kodu 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ı al

Aynı hesaptaki tüm özel şemaları almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi dahil edin.İ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 ilişkin özel şemalarla birlikte bir 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"
        }
      ]
    }
  ]
}