如何仅检索对象的值(AdminDirectory.Users.list)

时间:2018-01-23 04:29:49

标签: google-apps-script

我正在使用" AdminDirectory.Users.list"导出用户它工作正常,但我想过滤" user.organizations"值目前我正在获得输出" {customType =,costCenter =抵押贷款,description =,title =,department = Sales,primary = true}"我怎样才能确保我只获得costCenter的输出(抵押贷款)

enter image description here



  "organizations": [
    {
      "name": string,
      "title": string,
      "primary": boolean,
      "type": string,
      "customType": string,
      "department": string,
      "symbol": string,
      "location": string,
      "description": string,
      "domain": string,
      "costCenter": string,
      "fullTimeEquivalent": integer
    }




2 个答案:

答案 0 :(得分:0)

Google API中有一个名为' fields'的标准媒体资源。您可以在其中指定要返回的值而不是整个文件资源(*)。管理员Users.list Try-it也拥有它。

我将使用Drive API list因为我不使用Admin SDK,但这个概念应该很容易翻译。

{
  "files": [
    {
       "owners": [
          {
           "kind": "drive#user",
           "displayName": "noogui",
          }
        ]
    }
  ]
}

如果我想要求所有' files'财产,我在Try-it传递fields = files之类的内容。如果我想让所有owners个孩子进入' files',我会传递类似

的内容

fields = files(owners)

如果我只想获得displayName,我会传递类似

的内容

fields = files(owners(displayName))

实施可能因语言而异,但我希望你明白这一点。

答案 1 :(得分:0)

我不确定你是否还需要帮助。但我认为你需要的是获得costCenter的价值。您可以在Google Apps脚本中使用它来获取示例,您可以修改它以匹配您的列表请求。

var userInfo = AdminDirectory.Users.get(user, {fields: 'organizations', viewType:'domain_public'});

var userCostCenter = userInfo.organizations[0].costCenter;
if(userCostCenter  == "Mortgage Loans"){
...
}

您还可以使用q参数来限制结果。您可以查看syntax on this link