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