Za pomocą metody users.list()
interfejsu Directory API możesz wyszukiwać użytkowników, którzy pasują do określonych atrybutów. Ta metoda akceptuje parametr query
, który jest zapytaniem wyszukiwania zawierają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 wykonywany na danych w celu zapewnienia dopasowania. Na przykład operator
:
sprawdza, czy atrybut tekstowy zawiera wartość. - Wartość
- Treści atrybutu, który jest testowany. Na przykład:
Jane
.
Aby wyszukać w zapytaniu wiele pól, dodaj każdą klauzulę wyszukiwania oddzieloną spacjami. Operacja jest domyślną operacją AND
.
Pola
Pole | Typ wartości | Operatory | Opis |
---|---|---|---|
Nie określono | ciąg znaków | Porównaj z wartością w givenName , familyName lub email . |
|
name |
ciąg znaków | =, : |
Wartość utworzona przez złączenie wartości 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 lub nazwa użytkownika. |
isAdmin |
wartość logiczna | = |
Określa, czy użytkownik ma uprawnienia superadministratora. |
isDelegatedAdmin |
wartość logiczna | = |
Czy użytkownik ma delegowane uprawnienia administratora. |
isSuspended |
wartość logiczna | = |
czy konto użytkownika jest zawieszone. |
isArchived |
wartość logiczna | = |
czy konto użytkownika jest zarchiwizowane. |
im |
ciąg znaków | =, : |
Identyfikator sieci IM. |
externalId |
ciąg znaków | =, : |
Wartość identyfikatora zewnętrznego. |
manager |
ciąg znaków | = |
Adres e-mail menedżera użytkownika, bezpośrednio lub wyżej w łańcuchu zarządzania. |
managerId |
ciąg znaków | = |
Identyfikator menedżera użytkownika, bezpośrednio lub w łańcuchu zarządzania. |
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 | =, : |
Skrzynka pocztowa. |
addressExtended |
ciąg znaków | =, : |
Rozszerzony adres, np. zawierający podregion. |
addressStreet |
ciąg znaków | =, : |
Ulica i numer. |
addressLocality |
ciąg znaków | =, : |
Miasto lub miejscowość z adresu. |
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 | =, : |
Tytuł 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. Dopasowuje wszystkie łańcuchy jednostek organizacyjnych podrzędnych do docelowej jednostki. Na przykład 'orgUnitPath=/' zwraca wszystkich użytkowników w organizacji. Z tego pola można korzystać 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, na który wskazuje się za pomocą jego schematu i nazwy pola. Właściwość indexed musi mieć wartość true . |
Typy wartości
Typ wartości | Odpowiednik w schemacie fieldType | Uwagi |
---|---|---|
ciąg znaków | STRING , EMAIL , PHONE |
Jeśli zapytanie zawiera spacje, ująć je w cudzysłowie ' . W zapytaniach należy stosować cudzysłów pojedynczy z użyciem znaku \' , np. 'Valentine\'s Day' . |
wartość logiczna | BOOL |
Wartość musi wynosić true lub false . Obsługuje tylko operator = . |
liczba | INT64 , DOUBLE |
Jako separatora dziesiętnego należy używać kropki, a nie separatora tysięcy, na przykład 150430.25 . |
data | DATE |
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ść są identyczne. 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 ciągu znaków (patrz wyżej). |
: |
ciąg znaków | Pole zawiera w wartości pełne słowa w kolejności. Na przykład zapytanie z wartością givenName:Jane pasuje do użytkowników z wartością givenName = "Jane" i "Jane Ann" , ale nie "Janet" . Zapytanie wielowyrazowe dotyczące 'givenName:Mary Ann' pasuje do wartości "Mary Ann Evans" i "Sarah Mary Ann" , ale nie do "Ann Mary" . Obsługiwane w większości pól ciągu znaków (patrz wyżej). |
:{PREFIX}* |
ciąg znaków | Pole zaczyna się od wartości. Na przykład zapytanie z wartością givenName:Jane* pasuje do użytkowników z wartością givenName = "Jane" , "Jane Ann" = "Janet" , ale nie "Sarah Jane" . Obsługiwane tylko w przypadku ograniczonego zbioru pól ciągu znaków (patrz wyżej). Nieobsługiwane w przypadku atrybutów niestandardowych. |
:[{MIN},{MAX}] |
liczba, data | Pole mieści się w zakresie. Aby dopasowanie było możliwe, wartość pola musi być większa lub równa {MIN} i mniejsza niż {MAX} . Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec . |
> |
liczba, data | Pole jest większe niż wartość. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec . |
>= |
liczba, data | Pole jest większe lub równe wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec . |
< |
liczba, data | Pole jest mniejsze od wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec . |
<= |
liczba, data | Pole jest mniejsze lub równe wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec . |
Przykłady
Wszystkie zapytania korzystają z metody users.list
, która ma żądanie HTTP podobne do tego (przerwy w wierszach dodano w celu ułatwienia odczytania):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Wyszukiwanie użytkownika według nazwy
Pole zapytania name
testuje wartości połączone givenName
i familyName
. Zapytanie name='Jane'
nie zwraca żadnych wyników dla użytkownika z adresem givenName='Jane'
i familyName='Smith'
.
name='Jane Smith'
Wyszukiwanie użytkowników na podstawie pola givenName
LUB familyName
zawierającego wartość
name:'Jane'
Wyszukiwanie użytkowników pasujących do prefiksu adresu e-mail
email:admin*
Wyszukiwanie wszystkich superadministratorów
isAdmin=true
Szukaj użytkowników, których orgTitles
zawiera „Menedżer”
orgTitle:Manager
Wyszukiwanie użytkowników, którzy mają wspólnego menedżera w łańcuchu podporządkowania
manager='janesmith@example.com'
Wyszukiwanie użytkowników mających tego samego bezpośredniego menedżera
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żytkowników
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 powyżej poziomu stanowiska 7
EmploymentData.jobLevel>=7
Wyszukiwanie wszystkich pracowników o poziomie stanowiska >= 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 muszą korzystać z weryfikacji dwuetapowej
isEnforcedIn2Sv=true