คุณจะค้นหาผู้ใช้ที่ตรงกับแอตทริบิวต์บางอย่างได้โดยใช้เมธอด users.list()
ของ Directory API เมธอดนี้จะยอมรับพารามิเตอร์ query
ซึ่งเป็นคำค้นหาที่รวมวลีการค้นหาอย่างน้อย 1 รายการ แต่ละวลีการค้นหาประกอบด้วย 3 ส่วนดังนี้
- ฟิลด์
- แอตทริบิวต์ผู้ใช้ที่ค้นหา เช่น
givenName
- ผู้ประกอบธุรกิจ
- ทดสอบซึ่งดำเนินการกับข้อมูลเพื่อให้ได้ผลลัพธ์ที่ตรงกัน เช่น โอเปอเรเตอร์
:
จะทดสอบว่าแอตทริบิวต์ข้อความมีค่าหรือไม่ - ค่า
- เนื้อหาของแอตทริบิวต์ที่ทดสอบ เช่น
Jane
หากต้องการค้นหาช่องหลายช่องในการค้นหาเดียว ให้เพิ่มวลีการค้นหาแต่ละรายการโดยคั่นด้วยเว้นวรรค การดำเนินการเป็น AND
โดยนัย
ช่อง
ฟิลด์ | ประเภทค่า | โอเปอเรเตอร์ | คำอธิบาย |
---|---|---|---|
ไม่ได้ระบุไว้ | string | เปรียบเทียบกับค่าใน givenName , familyName หรือ email |
|
name |
string | =, : |
ค่าต่อกันของ givenName และ familyName |
email |
string | = , : และ :{PREFIX}* |
อีเมลของผู้ใช้ รวมถึงอีเมลแทน |
givenName |
string | = , : และ :{PREFIX}* |
ชื่อหรือชื่อของผู้ใช้ |
familyName |
string | = , : และ :{PREFIX}* |
นามสกุลหรือนามสกุลของผู้ใช้ |
isAdmin |
boolean | = |
ดูว่าผู้ใช้มีสิทธิ์ของผู้ดูแลระบบขั้นสูงหรือไม่ |
isDelegatedAdmin |
boolean | = |
ดูว่าผู้ใช้มอบสิทธิ์ของผู้ดูแลระบบหรือไม่ |
isSuspended |
boolean | = |
บัญชีของผู้ใช้ถูกระงับหรือไม่ |
isArchived |
boolean | = |
มีการเก็บบัญชีของผู้ใช้หรือไม่ |
im |
string | =, : |
ID เครือข่าย IM |
externalId |
string | =, : |
ค่ารหัสภายนอก |
manager |
string | = |
อีเมลของผู้จัดการของผู้ใช้โดยตรงหรือของสายการจัดการ |
managerId |
string | = |
รหัสของผู้จัดการของผู้ใช้โดยตรงหรือของสายการจัดการ |
directManager |
string | = |
อีเมลของผู้จัดการโดยตรงของผู้ใช้ |
directManagerId |
string | = |
รหัสผู้จัดการโดยตรงของผู้ใช้ |
address |
string | : |
จับคู่ช่องที่อยู่ทั้งหมด |
addressPoBox |
string | =, : |
ตู้ไปรษณีย์ |
addressExtended |
string | =, : |
ที่อยู่เพิ่มเติม เช่น ที่อยู่ที่มีภูมิภาคย่อย |
addressStreet |
string | =, : |
ที่อยู่ |
addressLocality |
string | =, : |
เมืองของที่อยู่ |
addressRegion |
string | =, : |
จังหวัดหรือรัฐแบบย่อ |
addressPostalCode |
string | =, : |
รหัสไปรษณีย์ |
addressCountry |
string | =, : |
ประเทศ |
orgName |
string | =, : |
ชื่อองค์กร |
orgTitle |
string | =, : |
ชื่อของผู้ใช้ภายในองค์กร |
orgDepartment |
string | =, : |
แผนกภายในองค์กร |
orgDescription |
string | =, : |
คำอธิบายขององค์กร |
orgCostCenter |
string | =, : |
ศูนย์ต้นทุนขององค์กร |
phone |
string | = |
หมายเลขโทรศัพท์ของผู้ใช้ |
orgUnitPath |
string | = |
เส้นทางแบบเต็มของหน่วยขององค์กร ซึ่งจะจับคู่เชนหน่วยขององค์กรทั้งหมดภายใต้เป้าหมาย เช่น 'orgUnitPath=/' จะแสดงผลผู้ใช้ทุกคนในองค์กร ช่องนี้จะใช้ได้เมื่อ viewType=admin_view เท่านั้น |
isEnrolledIn2Sv |
boolean | = |
ดูว่าผู้ใช้ลงทะเบียนในการยืนยันแบบ 2 ขั้นตอนหรือไม่ |
isEnforcedIn2Sv |
boolean | = |
มีการบังคับใช้การยืนยันแบบ 2 ขั้นตอนสำหรับผู้ใช้หรือไม่ |
schemaName.fieldName |
? | ? | แอตทริบิวต์ของผู้ใช้ที่กำหนดเอง อ้างอิงตามสคีมาและชื่อฟิลด์ ต้องตั้งค่าพร็อพเพอร์ตี้ indexed ในช่องนี้เป็น true |
ประเภทค่า
ประเภทค่า | สคีมาที่เทียบเท่า fieldType | Notes |
---|---|---|
string | STRING , EMAIL , PHONE |
ล้อมรอบด้วยเครื่องหมายคำพูดเดี่ยว ' หากข้อความค้นหามีช่องว่าง ใช้เครื่องหมายคําพูดเดียวในข้อความค้นหาด้วย \' เช่น 'Valentine\'s Day' |
boolean | BOOL |
ต้องมีค่า true หรือ false รองรับเฉพาะโอเปอเรเตอร์ = |
ตัวเลข | INT64 DOUBLE |
ต้องใช้เครื่องหมายจุดเป็นตัวคั่นทศนิยมและไม่มีตัวคั่นหลักพัน เช่น 150430.25 |
วันที่ | DATE |
ระบุในรูปแบบ YYYY-MM-DD เช่น 2001-02-15 |
โอเปอเรเตอร์
ผู้ประกอบธุรกิจ | ประเภทค่าที่รองรับ | Notes |
---|---|---|
= |
string, boolean, number, date | ฟิลด์และค่าตรงกันทั้งหมด ตัวอย่างเช่น givenName=Jane จะจับคู่ผู้ใช้ทั้งหมดที่มีแอตทริบิวต์ givenName "Jane" แต่ไม่ใช่ "Jane Ann" ใช้ได้กับช่องสตริงส่วนใหญ่ (ดูด้านบน) |
: |
string | ช่องนี้มีคำที่สมบูรณ์ภายในค่า โดยเรียงตามลำดับ ตัวอย่างเช่น การค้นหาที่มี givenName:Jane จะจับคู่ผู้ใช้ที่มีค่า givenName เป็น "Jane" และ "Jane Ann" แต่ไม่จับคู่ "Janet" การค้นหาที่มีหลายคำสำหรับ 'givenName:Mary Ann' จะตรงกับค่าของ "Mary Ann Evans" และ "Sarah Mary Ann" แต่ไม่จับคู่กับ "Ann Mary" ใช้ได้กับช่องสตริงส่วนใหญ่ (ดูด้านบน) |
:{PREFIX}* |
string | โดยฟิลด์นี้จะเริ่มต้นด้วยค่า ตัวอย่างเช่น การค้นหาที่มี 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'
ไม่แสดงผลลัพธ์สำหรับผู้ใช้ที่มี 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]
ค้นหาพนักงานทุกคนที่ลงทะเบียนใน v Verification แบบ 2 ขั้นตอน
isEnrolledIn2Sv=true
ค้นหาพนักงานทุกคนที่บังคับใช้การยืนยันแบบ 2 ขั้นตอน
isEnforcedIn2Sv=true