搜尋使用者

您可以使用 Directory API 的 users.list() 方法,搜尋符合特定屬性的使用者。這個方法接受 query 參數,這是結合一或多個搜尋子句的搜尋查詢。每個搜尋子句都由 3 個部分組成:

欄位
搜尋的使用者屬性。例如 givenName
業者
對資料執行測試以提供匹配。舉例來說,: 運算子會測試文字屬性「包含」值。
受測試的屬性內容。例如 Jane

如要在查詢中搜尋多個欄位,請新增每個搜尋子句,並以空格分隔。這項作業為隱式 AND

欄位

欄位 值類型 運算子 說明
未指定 字串 比較 givenNamefamilyNameemail 中的值。
name 字串 =, : givenNamefamilyName 的串連值。
email 字串 =::{PREFIX}* 使用者的電子郵件地址,包括別名。
givenName 字串 =::{PREFIX}* 使用者的名字或名字。
familyName 字串 =::{PREFIX}* 使用者的姓氏或名字。
isAdmin boolean = 使用者是否擁有超級管理員權限。
isDelegatedAdmin boolean = 使用者是否擁有委派管理員權限。
isSuspended boolean = 使用者帳戶是否遭停權。
isArchived boolean = 使用者帳戶是否已封存。
im 字串 =, : 即時通訊聯播網 ID。
externalId 字串 =, : 外部 ID 值。
manager 字串 = 使用者管理員的電子郵件地址 (直接或鄰近管理鏈)。
managerId 字串 = 使用者管理工具的 ID (直接或上層管理鏈)。
directManager 字串 = 使用者直屬管理員的電子郵件地址。
directManagerId 字串 = 使用者的直屬管理員 ID。
address 字串 : 比對所有地址欄位。
addressPoBox 字串 =, : 郵政信箱。
addressExtended 字串 =, : 延伸位址,例如含有子區域的地址。
addressStreet 字串 =, : 街道地址。
addressLocality 字串 =, : 地址的鄉鎮或城市。
addressRegion 字串 =, : 省或州的縮寫。
addressPostalCode 字串 =, : 郵遞區號。
addressCountry 字串 =, : 一個國家/地區。
orgName 字串 =, : 機構名稱。
orgTitle 字串 =, : 機構內使用者的職稱。
orgDepartment 字串 =, : 機構中的部門。
orgDescription 字串 =, : 機構的說明。
orgCostCenter 字串 =, : 機構的成本中心。
phone 字串 = 使用者的電話號碼。
orgUnitPath 字串 = 機構單位的完整路徑。符合目標底下所有機構單位鏈結。舉例來說,'orgUnitPath=/' 會傳回機構中所有使用者。這個欄位只能在 viewType=admin_view 時使用。
isEnrolledIn2Sv boolean = 使用者是否已註冊兩步驟驗證。
isEnforcedIn2Sv boolean = 是否要為使用者強制執行兩步驟驗證。
schemaName.fieldName ? ? 一個自訂使用者屬性,由其結構定義和欄位名稱參照。這個欄位的 indexed 屬性必須設為 true

值類型

值類型 對等結構定義 fieldType 附註
字串 STRINGEMAILPHONE 如果查詢含有空白字元,請用單引號括住 '。在查詢中使用 \' 逸出單引號,例如 'Valentine\'s Day'
boolean BOOL 值必須為 truefalse。僅支援 = 運算子。
號碼 INT64DOUBLE 必須以半形句號做為小數分隔符,且不可使用千位分隔符,例如 150430.25
日期 DATE 以 YYYY-MM-DD 格式指定,例如 2001-02-15

運算子

業者 支援的值類型 附註
= string, boolean, number, date 欄位與值完全相符。舉例來說,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 查詢欄位會測試 givenNamefamilyName 串連值。針對使用 givenName='Jane'familyName='Smith' 的使用者,name='Jane' 查詢不會傳回任何結果。

name='Jane Smith'

搜尋含有 givenNamefamilyName 且包含值的使用者

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]

搜尋所有已註冊兩步驟驗證的員工

isEnrolledIn2Sv=true

搜尋所有已強制執行兩步驟驗證的員工

isEnforcedIn2Sv=true