【问题标题】:What is the format for the Directory.users().list().setQuery method?Directory.users().list().setQuery 方法的格式是什么?
【发布时间】:2013-06-15 05:29:42
【问题描述】:

documentation 声明:

前缀匹配搜索的查询字符串。应该是 "key":"value" 的形式,其中 key 可以是 "email"、"firstName" 或 "lastName"。

我试过了:

directory.users().list().setQuery("email:" + email).execute()

directory.users().list().setQuery("\"email\":\"" + email + "\"").execute()

directory.users().list().setQuery("email:\"" + email + "\"").execute()

它们都返回 400 : Bad Request 响应。如何正确过滤电子邮件地址?谢谢!

【问题讨论】:

    标签: google-admin-sdk


    【解决方案1】:

    也许这会为你指明正确的方向:

        var listReq = service.Users.List();
                listReq.Domain = domain;
            Users results = listReq.Execute();
    

    【讨论】:

      【解决方案2】:

      目前列表API只支持前缀查询,查询参数here请参考文档。

      尝试使用 "email:someEmail@someDomain.com*" 进行查询 -> 请注意末尾的星号。

      【讨论】:

      • 我发誓之前没有提到星号,但我会试试这个。谢谢!
      【解决方案3】:

      这是通过电子邮件地址获取用户的方法。

      directory.users().get(userKey=email).execute()
      

      通过电子邮件地址搜索用户的代码应该类似于

      directory.users().list(query='email:emily@example.com').execute()
      

      但这不起作用。我怀疑Google's API docs 中存在错误,或者可能在实际实现中。

      【讨论】:

      • 很高兴知道我没疯。以为我误解了文档,但是像这样的 .list() 查询确实会返回错误 400。我可以使用 .get() 完成当前的工作,但这太烦人了。同样令人惊讶的是,这个错误目前至少存在两年!
      猜你喜欢
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2010-11-14
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      相关资源
      最近更新 更多