คุณสามารถกําหนดฟิลด์ที่กำหนดเองสำหรับผู้ใช้ในโดเมนได้โดยการเพิ่มสคีมาผู้ใช้ที่กําหนดเองลงในโดเมน คุณสามารถใช้ช่องเหล่านี้เพื่อจัดเก็บข้อมูล เช่น โปรเจ็กต์ที่ผู้ใช้ทํางาน สถานที่ตั้งจริง วันที่จ้าง หรือข้อมูลอื่นๆ ที่ตรงกับความต้องการทางธุรกิจของคุณ
หากต้องการเริ่มต้นใช้งาน ให้สร้างสคีมาอย่างน้อย 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 |
ประเภทของค่า (ไม่บังคับ) ค่าที่เป็นไปได้มีดังนี้
|
customType |
ประเภทค่าที่กำหนดเอง (ไม่บังคับ) ต้องใช้งานเมื่อตั้งค่า type เป็น custom |
หากไม่ได้ระบุช่องที่กำหนดเองในสคีมา ณ เวลาอัปเดต ระบบจะไม่เปลี่ยนแปลงช่องดังกล่าว หากไม่ได้ระบุสคีมาใน customFields
ขณะอัปเดต ฟิลด์ที่กำหนดเองทั้งหมดในสคีมานั้นจะยังคงเหมือนเดิม หากต้องการลบช่องหรือสคีมาที่กำหนดเองออกจากโปรไฟล์ คุณต้องตั้งค่าเป็นnull
อย่างชัดเจน ดังนี้
"schema1": {
"field1": null // deletes field1 from this profile.
}
คำขอ JSON
การเรียกใช้ในตัวอย่างด้านล่างจะอัปเดตผู้ใช้และตั้งค่าสําหรับemploymentData
สคีมาที่กำหนดเอง
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" }
]
}
}
}
อ่านช่องที่กำหนดเองในโปรไฟล์ผู้ใช้
คุณสามารถดึงข้อมูลช่องที่กำหนดเองในโปรไฟล์ผู้ใช้ได้โดยการตั้งค่าพารามิเตอร์ projection
ในคําขอ users.get
หรือ users.list
เป็น custom
หรือ full
ค้นหาช่องที่กำหนดเองในโปรไฟล์ผู้ใช้
คุณสามารถค้นหาภายในช่องที่กำหนดเองได้โดยใช้พารามิเตอร์ query
ในคำขอ users.list
คุณขอช่องที่กำหนดเองได้โดยใช้ไวยากรณ์ schemaName.fieldName
เช่น
employmentData.projects:"GeneGnome"
แสดงผลพนักงานทั้งหมดที่ทํางานในโปรเจ็กต์ GeneGnome ข้อความค้นหา
employmentData.location="Atlanta" employmentData.jobLevel>=7
แสดงผลพนักงานทั้งหมดใน Atlanta ที่สูงกว่าระดับงาน 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"
}
]
}
]
}