จัดการช่องของผู้ใช้ที่กำหนดเอง

คุณกำหนดฟิลด์ที่กำหนดเองสำหรับผู้ใช้ในโดเมนได้โดยการเพิ่มสคีมาผู้ใช้ที่กำหนดเองลงในโดเมน คุณใช้ช่องเหล่านี้เพื่อจัดเก็บข้อมูล เช่น โปรเจ็กต์ที่ผู้ใช้ทำงาน สถานที่ตั้งจริง วันที่จ้างงาน หรือข้อมูลอื่นๆ ที่เหมาะกับความต้องการทางธุรกิจได้

หากต้องการเริ่มต้นใช้งาน ให้สร้างสคีมาอย่างน้อย 1 รายการ เพื่อกำหนดช่องที่กำหนดเองซึ่งเหมาะกับโดเมนของคุณ คุณระบุแอตทริบิวต์ได้หลายอย่าง เช่น ชื่อฟิลด์ ประเภท (สตริง บูลีน จำนวนเต็ม ฯลฯ) ไม่ว่าจะเป็นค่าเดียวหรือหลายค่า และไม่ว่าผู้ใช้ในโดเมนจะดูค่าได้หรือไม่ หรือดูได้เฉพาะผู้ดูแลระบบและผู้ใช้ที่เชื่อมโยง

เมื่อกำหนดสคีมาแล้ว ช่องที่กำหนดเองจะทำงานเหมือนกับช่องมาตรฐาน คุณตั้งค่าได้เมื่ออัปเดตผู้ใช้ในโดเมน ดึงข้อมูลด้วย users.get และ users.list รวมถึงค้นหาฟิลด์ที่กำหนดเอง

ตั้งค่าช่องที่กำหนดเองในโปรไฟล์ผู้ใช้

หากต้องการอัปเดตหรือสร้างสคีมา ให้สร้างcustomSchemasพร็อพเพอร์ตี้ แล้วเพิ่มลงในทรัพยากรผู้ใช้ ภายในพร็อพเพอร์ตี้ customSchemas ระบบจะจัดกลุ่มฟิลด์ที่กำหนดเองตามสคีมาในรูปแบบ JSON มาตรฐาน ดังนี้

"customSchemas": {
  "schema1": {
    "field1": "value1",
    "field2": [
      { "value": "value2a" },
      { "value": "value2b" },
      ...
    ],
    ...
  },
  "schema2": {
    "field3": "value3",
    ...
  },
  ...
}

ระบบจะตั้งค่าช่องที่กำหนดเองแบบค่าเดียวเป็นคู่คีย์-ค่าอย่างง่าย เช่น "field1": "value1" ระบบจะตั้งค่าช่องที่กำหนดเองแบบหลายค่าเป็นอาร์เรย์ของออบเจ็กต์ เช่นเดียวกับช่องแบบหลายค่ามาตรฐานใน API เช่น addresses และ phones ออบเจ็กต์ค่าเหล่านี้รองรับคีย์ต่อไปนี้

คีย์
value ค่าที่จะจัดเก็บ (ต้องระบุ)
type ประเภทของค่า (ไม่บังคับ) ค่าที่เป็นไปได้มีดังนี้
  • custom
  • home
  • other
  • work
customType ประเภทที่กำหนดเองของค่า (ไม่บังคับ) ต้องใช้เมื่อตั้งค่า type เป็น custom

หากไม่ได้ระบุฟิลด์ที่กำหนดเองในสคีมาเมื่ออัปเดต ระบบจะ ไม่เปลี่ยนแปลงฟิลด์ดังกล่าว หากไม่ได้ระบุสคีมาใน customFields เมื่ออัปเดต ระบบจะไม่เปลี่ยนแปลงฟิลด์ที่กำหนดเองทั้งหมดในสคีมานั้น หากต้องการลบฟิลด์ที่กำหนดเองหรือสคีมาที่กำหนดเองออกจากโปรไฟล์ คุณต้องตั้งค่าเป็นnull อย่างชัดเจน

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

คำขอ JSON

การเรียกในตัวอย่างด้านล่างจะอัปเดตผู้ใช้และตั้งค่าสำหรับสคีมาที่กำหนดเอง 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" }
      ]
    }
  }
}

อ่านฟิลด์ที่กำหนดเองในโปรไฟล์ผู้ใช้

คุณสามารถดึงข้อมูลฟิลด์ที่กำหนดเองในโปรไฟล์ผู้ใช้ได้โดยการตั้งค่าพารามิเตอร์ projection ในคำขอ users.get หรือ users.list เป็น custom หรือ full

ค้นหาช่องที่กำหนดเองในโปรไฟล์ผู้ใช้

คุณค้นหาภายในช่องที่กำหนดเองได้โดยใช้พารามิเตอร์ query ในคำขอ users.list คุณ ขอช่องที่กำหนดเองด้วยไวยากรณ์ schemaName.fieldName เช่น

employmentData.projects:"GeneGnome"

แสดงผลพนักงานทุกคนที่ทำงานในโปรเจ็กต์ GeneGnome คำค้นหา

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

แสดงพนักงานทั้งหมดในแอตแลนตาที่มีระดับงานสูงกว่า 7 ดูข้อมูลเพิ่มเติมได้ที่ ค้นหาผู้ใช้

สร้างสคีมาของผู้ใช้ที่กำหนดเอง

คุณเพิ่มสคีมาผู้ใช้ที่กำหนดเองลงในโดเมนทั้งหมดของบัญชี Google Workspace ได้ หากต้องการสร้างสคีมาผู้ใช้ที่กำหนดเองในโดเมน ให้ใช้POSTคำขอต่อไปนี้และรวมการให้สิทธิ์ที่อธิบายไว้ในคำขอสิทธิ์ ดูพร็อพเพอร์ตี้สตริงการค้นหาของคำขอได้ที่เอกสารอ้างอิง API

POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas

คำขอสร้างทั้งหมดกำหนดให้คุณต้องส่งข้อมูลที่จำเป็นต่อการดำเนินการตามคำขอ หากคุณใช้ไลบรารีของไคลเอ็นต์ ไลบรารีจะแปลงออบเจ็กต์ข้อมูล จากภาษาที่คุณเลือกเป็นออบเจ็กต์ข้อมูล JSON ที่จัดรูปแบบ

คำขอ JSON

ตัวอย่างต่อไปนี้แสดงคำขอสร้างสคีมาที่กำหนดเอง ดูรายการพร็อพเพอร์ตี้คำขอและการตอบกลับทั้งหมดได้ที่เอกสารอ้างอิง API

{
  "schemaName": "employmentData",
  "fields": [
    {
      "fieldName": "EmployeeNumber",
      "fieldType": "STRING",
      "multiValued": "false"
    },
    {
      "fieldName": "JobFamily",
      "fieldType": "STRING",
      "multiValued": "false"
    }
  ]
}

การตอบกลับที่สำเร็จจะแสดงรหัสสถานะ HTTP 201 พร้อมกับพร็อพเพอร์ตี้สำหรับสคีมาที่กำหนดเองใหม่

ขีดจำกัดของสคีมาที่กำหนดเอง

  • จำนวนสคีมาที่กำหนดเองสูงสุดที่อนุญาตในบัญชีคือ 100 รายการ
  • จำนวนช่องที่กำหนดเองสูงสุดที่อนุญาตในบัญชีคือ 100 ช่อง
  • จำนวนอักขระสูงสุดที่อนุญาตในฟิลด์ string สำหรับฟิลด์ที่กำหนดเองแบบค่าเดียวคือ 500 สำหรับฟิลด์ที่กำหนดเองแบบหลายค่า จำนวนองค์ประกอบที่อนุญาตจะขึ้นอยู่กับขนาดของค่าที่กำหนด เช่น คุณเพิ่มค่า 150 ค่าที่มีอักขระ 100 ตัวในแต่ละค่า หรือเพิ่มค่า 50 ค่าที่มีอักขระ 500 ตัวในแต่ละค่าได้
  • อักขระที่อนุญาตในสคีมาที่กำหนดเองและชื่อฟิลด์คืออักขระที่เป็นตัวอักษรและตัวเลขคละกัน ขีดล่าง (_) และขีดกลาง (-)
  • ไม่อนุญาตให้เปลี่ยนประเภทของฟิลด์
  • คุณเปลี่ยนฟิลด์ที่มีค่าเดียวให้เป็นฟิลด์ที่มีหลายค่าได้ แต่ระบบไม่อนุญาตให้ดำเนินการย้อนกลับ
  • คุณเปลี่ยนชื่อสคีมาหรือฟิลด์ที่กำหนดเองไม่ได้

อัปเดตสคีมาของผู้ใช้ที่กำหนดเอง

หากต้องการอัปเดตสคีมาที่กำหนดเอง ให้ใช้คำขอ PUT ต่อไปนี้และรวมการให้สิทธิ์ที่อธิบายไว้ในคำขอสิทธิ์ schemaKey idอาจเป็นชื่อสคีมาหรือสคีมาที่ไม่ซ้ำกันก็ได้ ดูพร็อพเพอร์ตี้คำขอ และการตอบกลับได้ใน เอกสารอ้างอิง API

PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey

คำขอ JSON

ในตัวอย่างด้านล่าง สคีมา employmentData มีฟิลด์ JobFamily เมื่อสร้างขึ้นครั้งแรก คำขอจะอัปเดต employmentData ให้ มีเฉพาะฟิลด์ 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"
    }
  ]
}

คำขออัปเดตทั้งหมดกำหนดให้คุณต้องส่งข้อมูลที่จำเป็นต่อการดำเนินการตามคำขอ

การตอบกลับที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 พร้อมกับทรัพยากรสคีมาที่อัปเดต

ดึงข้อมูลสคีมาของผู้ใช้ที่กำหนดเอง

หากต้องการดึงข้อมูลสคีมาที่กำหนดเอง ให้ใช้คำขอ GET ต่อไปนี้และรวมการให้สิทธิ์ที่อธิบายไว้ในคำขอสิทธิ์ schemaKey idอาจเป็นชื่อสคีมาหรือสคีมาที่ไม่ซ้ำกันก็ได้ ดูพร็อพเพอร์ตี้คำขอ และการตอบกลับได้ใน เอกสารอ้างอิง API

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas/schemaKey

การตอบกลับที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 พร้อมกับพร็อพเพอร์ตี้สำหรับสคีมาที่กำหนดเอง

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

ดึงข้อมูลสคีมาของผู้ใช้ที่กำหนดเองทั้งหมด

หากต้องการดึงข้อมูลสคีมาที่กำหนดเองทั้งหมดในบัญชีเดียวกัน ให้ใช้GET คำขอต่อไปนี้และรวมการให้สิทธิ์ที่อธิบายไว้ใน คำขอสิทธิ์ สำหรับพร็อพเพอร์ตี้คำขอและการตอบกลับ โปรดดูข้อมูลอ้างอิง API

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer or customerId/schemas

การตอบกลับที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 พร้อมกับสคีมาที่กำหนดเองสำหรับบัญชี

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