คุณสามารถค้นหาผู้ใช้ที่ตรงกับแอตทริบิวต์บางอย่างด้วยเมธอด 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