Możesz wyszukiwać użytkowników pasujących do określonych atrybutów za pomocą metody users.list() interfejsu Directory API. Ta metoda akceptuje parametr query, który jest zapytaniem wyszukiwania łączącym co najmniej 1 klauzulę wyszukiwania. Każda klauzula wyszukiwania składa się z 3 części:
- Pole
- Atrybut użytkownika, który jest wyszukiwany. Na przykład:
givenName. - Operator
- Test przeprowadzany na danych w celu dopasowania. Na przykład operator
:sprawdza, czy atrybut tekstowy zawiera wartość. - Wartość
- Treść testowanego atrybutu. Na przykład:
Jane.
Aby wyszukać w zapytaniu wiele pól, dodaj poszczególne klauzule wyszukiwania, oddzielając je spacją. Operacja jest niejawną operacją AND.
Pola
| Pole | Typ wartości | Operatory | Opis |
|---|---|---|---|
| Nie określono | ciąg znaków | Porównaj z wartością w kolumnie givenName, familyName lub email. |
|
name |
ciąg znaków | =, : |
Połączona wartość parametrów givenName i familyName. |
email |
ciąg znaków | =, :, :{PREFIX}* |
Adresy e-mail użytkownika, w tym aliasy. |
givenName |
ciąg znaków | =, :, :{PREFIX}* |
Imię użytkownika. |
familyName |
ciąg znaków | =, :, :{PREFIX}* |
Nazwisko użytkownika. |
isAdmin |
Wartość logiczna | = |
Określa, czy użytkownik ma uprawnienia superadministratora. |
isDelegatedAdmin |
Wartość logiczna | = |
Określa, czy użytkownik ma uprawnienia administratora delegowanego. |
isSuspended |
Wartość logiczna | = |
Czy konto użytkownika jest zawieszone. |
isArchived |
Wartość logiczna | = |
informację, czy konto użytkownika jest zarchiwizowane; |
im |
ciąg znaków | =, : |
Identyfikator sieci komunikatora. |
externalId |
ciąg znaków | =, : |
Wartość zewnętrznego identyfikatora. |
manager |
ciąg znaków | = |
Adres e-mail menedżera użytkownika bezpośrednio lub w strukturze organizacyjnej. |
managerId |
ciąg znaków | = |
Identyfikator menedżera użytkownika bezpośrednio lub w strukturze organizacyjnej. |
directManager |
ciąg znaków | = |
Adres e-mail bezpośredniego przełożonego użytkownika. |
directManagerId |
ciąg znaków | = |
Identyfikator bezpośredniego menedżera użytkownika. |
address |
ciąg znaków | : |
Dopasowuje wszystkie pola adresu. |
addressPoBox |
ciąg znaków | =, : |
skrytka pocztowa; |
addressExtended |
ciąg znaków | =, : |
Rozszerzony adres, np. adres zawierający podregion. |
addressStreet |
ciąg znaków | =, : |
Ulica i numer. |
addressLocality |
ciąg znaków | =, : |
Miejscowość lub miasto w adresie. |
addressRegion |
ciąg znaków | =, : |
Skrót nazwy prowincji lub stanu. |
addressPostalCode |
ciąg znaków | =, : |
kod pocztowy; |
addressCountry |
ciąg znaków | =, : |
Kraj. |
orgName |
ciąg znaków | =, : |
Nazwa organizacji. |
orgTitle |
ciąg znaków | =, : |
Stanowisko użytkownika w organizacji. |
orgDepartment |
ciąg znaków | =, : |
dział w organizacji, |
orgDescription |
ciąg znaków | =, : |
Opis organizacji. |
orgCostCenter |
ciąg znaków | =, : |
Centrum kosztów organizacji. |
phone |
ciąg znaków | = |
Numer telefonu użytkownika. |
orgUnitPath |
ciąg znaków | = |
Pełna ścieżka jednostki organizacyjnej. Obejmuje to wszystkie łańcuchy jednostek organizacyjnych w obszarze docelowym. Na przykład 'orgUnitPath=/' zwraca wszystkich użytkowników w organizacji. To pole można używać tylko wtedy, gdy viewType=admin_view. |
isEnrolledIn2Sv |
Wartość logiczna | = |
Określa, czy użytkownik korzysta z weryfikacji dwuetapowej. |
isEnforcedIn2Sv |
Wartość logiczna | = |
Określa, czy weryfikacja dwuetapowa jest wymuszana na koncie użytkownika. |
schemaName.fieldName |
? | ? | Atrybut niestandardowy użytkownika, do którego odwołuje się jego schemat i nazwa pola. Pole musi mieć właściwość indexed ustawioną na true. |
Typy wartości
| Typ wartości | Odpowiednik w schemacie fieldType | Uwagi |
|---|---|---|
| ciąg znaków | STRING, EMAIL, PHONE |
Jeśli zapytanie zawiera spacje, umieść je w apostrofach '. Pojedyncze cudzysłowy w zapytaniach należy poprzedzać znakiem \', np. 'Valentine\'s Day'. |
| Wartość logiczna | BOOL |
Musi mieć wartość true lub false. Obsługuje tylko operator =. |
| liczba | INT64, DOUBLE |
Jako separatora dziesiętnego należy używać kropki, a separatora tysięcy nie należy stosować, np. 150430.25. |
| data | DATE |
Podana w formacie RRRR-MM-DD, np. 2001-02-15. |
Operatory
| Operator | Obsługiwane typy wartości | Uwagi |
|---|---|---|
= |
ciąg znaków, wartość logiczna, liczba, data | Pole i wartość muszą być dokładnie takie same. Na przykład reguła givenName=Jane pasuje do wszystkich użytkowników z atrybutem givenName o wartości "Jane", ale nie "Jane Ann". Obsługiwane w większości pól tekstowych (patrz wyżej). |
: |
ciąg znaków | Pole zawiera całe słowa w wartości w odpowiedniej kolejności. Na przykład zapytanie z warunkiem givenName:Jane pasuje do użytkowników, których wartością parametru givenName jest "Jane" lub "Jane Ann", ale nie "Janet". Zapytanie wielosłowne dotyczące 'givenName:Mary Ann' będzie pasować do wartości "Mary Ann Evans" i "Sarah Mary Ann", ale nie do "Ann Mary". Obsługiwane w większości pól tekstowych (patrz wyżej). |
:{PREFIX}* |
ciąg znaków | Pole zaczyna się od wartości. Na przykład zapytanie z warunkiem givenName:Jane* pasuje do użytkowników, których wartością parametru givenName jest "Jane", "Jane Ann" lub "Janet", ale nie "Sarah Jane". Obsługiwane tylko w przypadku ograniczonego zestawu pól tekstowych (patrz wyżej). Nie jest obsługiwane w przypadku atrybutów niestandardowych. |
:[{MIN},{MAX}] |
liczba, data | Pole mieści się w zakresie. Aby nastąpiło dopasowanie, wartość pola musi być większa lub równa {MIN} i mniejsza niż {MAX}. Aby obsługiwać ten operator, atrybuty niestandardowe typu liczba muszą określać numericIndexingSpec. |
> |
liczba, data | Wartość pola jest większa od wartości. Aby obsługiwać ten operator, atrybuty niestandardowe typu liczba muszą określać numericIndexingSpec. |
>= |
liczba, data | Pole ma wartość większą od lub równą wartości. Aby obsługiwać ten operator, atrybuty niestandardowe typu liczba muszą określać numericIndexingSpec. |
< |
liczba, data | Wartość pola jest mniejsza niż wartość. Aby obsługiwać ten operator, atrybuty niestandardowe typu liczba muszą określać numericIndexingSpec. |
<= |
liczba, data | Wartość w polu jest mniejsza lub równa wartości. Aby obsługiwać ten operator, atrybuty niestandardowe typu liczba muszą określać numericIndexingSpec. |
Przykłady
Wszystkie zapytania używają metody users.list, która ma żądanie HTTP podobne do tego (podziały wierszy zostały dodane dla czytelności):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Wyszukiwanie użytkownika według imienia i nazwiska
Pole zapytania name testuje połączoną wartość givenName i familyName. Zapytanie o name='Jane' nie zwraca wyników w przypadku użytkownika, który ma givenName='Jane' i familyName='Smith'.
name='Jane Smith'
Wyszukiwanie użytkowników z givenName LUB familyName zawierającym wartość
name:'Jane'
Wyszukiwanie użytkowników pasujących do prefiksu adresu e-mail
email:admin*
Wyszukiwanie wszystkich superadministratorów
isAdmin=true
Wyszukaj użytkowników, których orgTitles zawiera „Manager”
orgTitle:Manager
Wyszukiwanie użytkowników, którzy mają wspólnego menedżera w swojej strukturze raportowania
manager='janesmith@example.com'
Wyszukiwanie użytkowników z tym samym bezpośrednim menedżerem
directManager='bobjones@example.com'
Wyszukiwanie użytkowników w danym kraju
addressCountry='Sweden'
Wyszukiwanie użytkowników w określonej organizacji
orgName='Human Resources'
Wyszukiwanie menedżerów w określonej organizacji
orgName=Engineering orgTitle:Manager
Wyszukiwanie niestandardowych atrybutów użytkownika
Wyszukiwanie wszystkich pracowników, którzy pracują nad konkretnym projektem
EmploymentData.projects:'GeneGnomes'
Wyszukiwanie wszystkich pracowników w określonej lokalizacji
EmploymentData.location='Atlanta'
Wyszukiwanie wszystkich pracowników na stanowiskach powyżej poziomu 7
EmploymentData.jobLevel>=7
Wyszukaj wszystkich pracowników, których poziom stanowiska jest >= 5 i < 8
EmploymentData.jobLevel:[5,8]
Wyszukiwanie wszystkich pracowników, którzy korzystają z weryfikacji dwuetapowej
isEnrolledIn2Sv=true
Wyszukiwanie wszystkich pracowników, którzy mają włączoną weryfikację dwuetapową
isEnforcedIn2Sv=true