ค้นหาผู้ใช้

คุณสามารถค้นหาผู้ใช้ที่ตรงกับแอตทริบิวต์บางอย่างด้วยเมธอด users.list() ของ Directory API เมธอดนี้จะยอมรับพารามิเตอร์ query ซึ่งเป็นข้อความค้นหาที่รวมคำสั่งค้นหาอย่างน้อย 1 รายการ ประโยคการค้นหาแต่ละรายการประกอบด้วย 3 ส่วนดังนี้

ช่อง
แอตทริบิวต์ผู้ใช้ที่ค้นหา เช่น givenName
โอเปอเรเตอร์
การทดสอบที่ดำเนินการกับข้อมูลเพื่อให้การจับคู่ เช่น : โอเปอเรเตอร์จะทดสอบว่าแอตทริบิวต์ข้อความมีค่าหรือไม่
ค่า
เนื้อหาของแอตทริบิวต์ที่ทดสอบ เช่น Jane

หากต้องการค้นหาหลายช่องในข้อความค้นหา ให้เพิ่มประโยคค้นหาแต่ละรายการโดยคั่นด้วยการเว้นวรรค การดำเนินการนี้เป็น AND โดยนัย

ช่อง

ช่อง ประเภทค่า โอเปอเรเตอร์ คำอธิบาย
ไม่ได้ระบุไว้ สตริง เปรียบเทียบกับค่าใน givenName, familyName หรือ email
name สตริง =, : ค่าที่ต่อเชื่อมกันของ givenName และ familyName
email สตริง =, :, :{PREFIX}* อีเมลของผู้ใช้ ซึ่งรวมถึงอีเมลแทน
givenName สตริง =, :, :{PREFIX}* ชื่อจริงของผู้ใช้
familyName สตริง =, :, :{PREFIX}* นามสกุลหรือชื่อครอบครัวของผู้ใช้
isAdmin บูลีน = ผู้ใช้มีสิทธิ์ของผู้ดูแลระบบขั้นสูงหรือไม่
isDelegatedAdmin บูลีน = ระบุว่าผู้ใช้ได้รับมอบสิทธิ์ของผู้ดูแลระบบหรือไม่
isSuspended บูลีน = บัญชีของผู้ใช้ถูกระงับหรือไม่
isArchived บูลีน = บัญชีของผู้ใช้ได้รับการเก็บถาวรหรือไม่
im สตริง =, : รหัสเครือข่าย IM
externalId สตริง =, : ค่ารหัสภายนอก
manager สตริง = อีเมลของผู้จัดการของผู้ใช้โดยตรงหรือส่งต่อไปยังสายการจัดการ
managerId สตริง = รหัสของผู้จัดการผู้ใช้โดยตรงหรือในสายการจัดการ
directManager สตริง = อีเมลของผู้จัดการโดยตรงของผู้ใช้
directManagerId สตริง = รหัสของผู้จัดการโดยตรงของผู้ใช้
address สตริง : จับคู่กับช่องที่อยู่ทั้งหมด
addressPoBox สตริง =, : ตู้ไปรษณีย์
addressExtended สตริง =, : ที่อยู่แบบขยาย เช่น ที่อยู่ที่มีเขตย่อย
addressStreet สตริง =, : ที่อยู่
addressLocality สตริง =, : เมืองหรืออำเภอของที่อยู่
addressRegion สตริง =, : จังหวัดหรือรัฐแบบย่อ
addressPostalCode สตริง =, : รหัสไปรษณีย์
addressCountry สตริง =, : ประเทศ
orgName สตริง =, : ชื่อองค์กร
orgTitle สตริง =, : ตำแหน่งของผู้ใช้ภายในองค์กร
orgDepartment สตริง =, : แผนกภายในองค์กร
orgDescription สตริง =, : คำอธิบายขององค์กร
orgCostCenter สตริง =, : ศูนย์ต้นทุนขององค์กร
phone สตริง = หมายเลขโทรศัพท์ของผู้ใช้
orgUnitPath สตริง = เส้นทางแบบเต็มของหน่วยขององค์กร ซึ่งจะจับคู่กับเชนหน่วยขององค์กรทั้งหมดภายใต้เป้าหมาย เช่น 'orgUnitPath=/' จะแสดงผู้ใช้ทั้งหมดในองค์กร ช่องนี้ใช้ได้เฉพาะเมื่อ viewType=admin_view
isEnrolledIn2Sv บูลีน = ดูว่าผู้ใช้ลงทะเบียนในการยืนยันแบบ 2 ขั้นตอนหรือไม่
isEnforcedIn2Sv บูลีน = บังคับใช้การยืนยันแบบ 2 ขั้นตอนกับผู้ใช้หรือไม่
schemaName.fieldName ? ? แอตทริบิวต์ที่กำหนดเองของผู้ใช้ ซึ่งอ้างอิงตามสคีมาและชื่อช่อง ช่องต้องตั้งค่าพร็อพเพอร์ตี้ indexed เป็น true

ประเภทค่า

ประเภทค่า fieldType สคีมาเทียบเท่า หมายเหตุ
สตริง STRING, EMAIL, PHONE ใส่เครื่องหมายคำพูดเดี่ยว ' ล้อมรอบหากข้อความค้นหามีเว้นวรรค หนีเครื่องหมายคำพูดเดี่ยวในการค้นหาด้วย \' เช่น 'Valentine\'s Day'
บูลีน BOOL ต้องมีค่าเป็น true หรือ false รองรับเฉพาะโอเปอเรเตอร์ =
ตัวเลข INT64 DOUBLE ต้องใช้เครื่องหมายจุดเป็นตัวคั่นทศนิยมและไม่มีเครื่องหมายคั่นหลักพัน เช่น 150430.25
วันที่ DATE ระบุในรูปแบบ ปปปป-ดด-วว เช่น 2001-02-15

โอเปอเรเตอร์

โอเปอเรเตอร์ ประเภทค่าที่รองรับ หมายเหตุ
= สตริง บูลีน ตัวเลข วันที่ ฟิลด์และค่าตรงกันทุกประการ เช่น givenName=Jane จะจับคู่ผู้ใช้ทั้งหมดที่มีแอตทริบิวต์ givenName "Jane" แต่ไม่จับคู่กับ "Jane Ann" รองรับในฟิลด์สตริงส่วนใหญ่ (ดูด้านบน)
: สตริง ช่องนี้มีคำทั้งหมดภายในค่าตามลําดับ ตัวอย่างเช่น ข้อความค้นหาที่มี givenName:Jane จะจับคู่ผู้ใช้ที่มีค่า givenName เป็น "Jane" และ "Jane Ann" แต่ไม่จับคู่กับ "Janet" การค้นหาแบบหลายคำสำหรับ 'givenName:Mary Ann' จะจับคู่กับค่าของ "Mary Ann Evans" และ "Sarah Mary Ann" แต่ไม่จับคู่กับ "Ann Mary" รองรับในฟิลด์สตริงส่วนใหญ่ (ดูด้านบน)
:{PREFIX}* สตริง ช่องจะขึ้นต้นด้วยค่า ตัวอย่างเช่น การค้นหาที่มี givenName:Jane* จะจับคู่ผู้ใช้ที่มีค่า givenName เป็น "Jane", "Jane Ann" และ "Janet" แต่ไม่จับคู่กับ "Sarah Jane" รองรับเฉพาะในฟิลด์สตริงชุดจํากัด (ดูด้านบน) ไม่รองรับในแอตทริบิวต์ที่กำหนดเอง
:[{MIN},{MAX}] หมายเลข วันที่ ฟิลด์อยู่ในช่วง ค่าของช่องต้องมากกว่าหรือเท่ากับ {MIN} และน้อยกว่า {MAX} จึงจะตรงกันได้ แอตทริบิวต์ตัวเลขที่กำหนดเองต้องระบุ numericIndexingSpec เพื่อรองรับโอเปอเรเตอร์นี้
> หมายเลข วันที่ ฟิลด์มีค่ามากกว่าค่า แอตทริบิวต์ตัวเลขที่กำหนดเองต้องระบุ numericIndexingSpec เพื่อรองรับโอเปอเรเตอร์นี้
>= หมายเลข วันที่ ช่องมีค่ามากกว่าหรือเท่ากับค่า แอตทริบิวต์ตัวเลขที่กำหนดเองต้องระบุ numericIndexingSpec เพื่อรองรับโอเปอเรเตอร์นี้
< หมายเลข วันที่ ช่องมีค่าน้อยกว่าค่า แอตทริบิวต์ตัวเลขที่กำหนดเองต้องระบุ numericIndexingSpec เพื่อรองรับโอเปอเรเตอร์นี้
<= หมายเลข วันที่ ช่องมีค่าน้อยกว่าหรือเท่ากับค่า แอตทริบิวต์ตัวเลขที่กำหนดเองต้องระบุ numericIndexingSpec เพื่อรองรับโอเปอเรเตอร์นี้

ตัวอย่าง

การค้นหาทั้งหมดใช้เมธอด users.list ซึ่งมีคําขอ HTTP คล้ายกับตัวอย่างต่อไปนี้ (มีการแบ่งบรรทัดเพื่อความสะดวกในการอ่าน)

GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS

ค้นหาผู้ใช้ตามชื่อ

ช่องการค้นหา name จะทดสอบค่าที่ต่อเชื่อมกันของ givenName และ familyName การค้นหา name='Jane' แสดงผลลัพธ์เป็น 0 สำหรับผู้ใช้ที่มี givenName='Jane' และ familyName='Smith'

name='Jane Smith'

ค้นหาผู้ใช้ที่มี givenName หรือ familyName ที่มีค่า

name:'Jane'

ค้นหาผู้ใช้ที่ตรงกับคำนำหน้าอีเมล

email:admin*

ค้นหาผู้ดูแลระบบขั้นสูงทั้งหมด

isAdmin=true

ค้นหาผู้ใช้ที่มี orgTitles ซึ่งมี "ผู้จัดการ"

orgTitle:Manager

ค้นหาผู้ใช้ที่มีผู้จัดการคนเดียวกันในสายบังคับบัญชา

manager='janesmith@example.com'

ค้นหาผู้ใช้ที่มีผู้จัดการโดยตรงคนเดียวกัน

directManager='bobjones@example.com'

ค้นหาผู้ใช้ในประเทศหนึ่งๆ

addressCountry='Sweden'

ค้นหาผู้ใช้ในองค์กรที่ต้องการ

orgName='Human Resources'

ค้นหาผู้จัดการในองค์กรที่ต้องการ

orgName=Engineering orgTitle:Manager

ค้นหาแอตทริบิวต์ผู้ใช้ที่กําหนดเอง

ค้นหาพนักงานทุกคนที่ทำงานในโปรเจ็กต์หนึ่งๆ

EmploymentData.projects:'GeneGnomes'

ค้นหาพนักงานทั้งหมดในสถานที่ที่เฉพาะเจาะจง

EmploymentData.location='Atlanta'

ค้นหาพนักงานทุกคนที่สูงกว่าระดับงาน 7

EmploymentData.jobLevel>=7

ค้นหาพนักงานทุกคนที่มีระดับงานตั้งแต่ 5 ขึ้นไปแต่ไม่เกิน 8

EmploymentData.jobLevel:[5,8]

ค้นหาพนักงานทุกคนที่ลงทะเบียนใช้การยืนยันแบบ 2 ขั้นตอน

isEnrolledIn2Sv=true

ค้นหาพนักงานทุกคนที่มีการบังคับใช้การยืนยันแบบ 2 ขั้นตอน

isEnforcedIn2Sv=true