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

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:
  • custom
  • home
  • other
  • work
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/[email protected]

{
  "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 GETisteğ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"
        }
      ]
    }
  ]
}