شما میتوانید با استفاده از متد users.list() از Directory API، کاربرانی را که با ویژگیهای خاصی مطابقت دارند، جستجو کنید. این متد پارامتر query را میپذیرد که یک query جستجو است که یک یا چند عبارت جستجو را ترکیب میکند. هر عبارت جستجو از 3 بخش تشکیل شده است:
- میدان
- ویژگی کاربر که جستجو میشود. برای مثال،
givenName. - اپراتور
- آزمایشی که روی دادهها انجام میشود تا تطابقی پیدا شود. برای مثال، عملگر
:بررسی میکند که آیا یک ویژگی متنی حاوی مقداری است یا خیر. - ارزش
- محتوای ویژگی مورد آزمایش. برای مثال،
Jane.
برای جستجوی چندین فیلد در یک پرس و جو، هر عبارت جستجو را با یک فاصله از هم جدا کنید. این عملیات یک AND ضمنی است.
فیلدها
| میدان | نوع مقدار | اپراتورها | توضیحات |
|---|---|---|---|
| هیچ کدام مشخص نشده است | رشته | با مقدار موجود در givenName ، familyName یا email مقایسه کنید. | |
name | رشته | =, : | مقدار الحاقی givenName و familyName . |
email | رشته | = ، : ، :{PREFIX}* | آدرسهای ایمیل کاربر، شامل نامهای مستعار. |
givenName | رشته | = ، : ، :{PREFIX}* | نام یا نام کوچک کاربر. |
familyName | رشته | = ، : ، :{PREFIX}* | نام خانوادگی یا فامیلی کاربر. |
isAdmin | بولی | = | اینکه آیا یک کاربر دارای امتیازات فوق مدیر (super administrator) است یا خیر. |
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 | بولی | = | اینکه آیا کاربر در تأیید هویت دو مرحلهای ثبتنام کرده است یا خیر. |
isEnforcedIn2Sv | بولی | = | اینکه آیا تأیید هویت دو مرحلهای برای کاربر فعال شده است یا خیر. |
schemaName.fieldName | ? | ? | یک ویژگی کاربر سفارشی ، که توسط طرحواره و نام فیلد آن ارجاع داده میشود. ویژگی indexed property) فیلد باید روی true تنظیم شود. |
انواع مقادیر
| نوع مقدار | نوع فیلد طرحواره معادل | یادداشتها |
|---|---|---|
| رشته | STRING ، EMAIL ، PHONE | اگر عبارت جستجو شامل فضای خالی است، آن را با علامت نقل قول تکی ' احاطه کنید. در عبارات جستجو شده با علامت نقل قول تکی \' ، مثلاً 'Valentine\'s Day' از علامت نقل قول تکی 'Escape' استفاده کنید. |
| بولی | BOOL | باید مقدار true یا false داشته باشد. فقط از عملگر = پشتیبانی میکند. |
| شماره | INT64 ، DOUBLE | باید از نقطه به عنوان جداکننده اعشاری استفاده شود و از جداکننده هزارگان استفاده نشود، برای مثال 150430.25 . |
| تاریخ | DATE | با فرمت YYYY-MM-DD مشخص شده است، برای مثال 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' برای کاربری با 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'
جستجوی همه کارمندان بالاتر از سطح شغلی ۷
EmploymentData.jobLevel>=7
جستجوی تمام کارمندانی که سطح شغلی آنها >= 5 و < 8 است
EmploymentData.jobLevel:[5,8]
جستجوی تمام کارمندانی که در تأیید هویت دو مرحلهای (2-Step vVerification) ثبتنام کردهاند
isEnrolledIn2Sv=true
جستجوی تمام کارمندانی که تأیید هویت دو مرحلهای برایشان اجباری شده است
isEnforcedIn2Sv=true