【问题标题】:How to get all users in one organization unit using Google Directory API如何使用 Google Directory API 获取一个单位部门中的所有用户
【发布时间】:2013-06-07 01:52:31
【问题描述】:

在新发布的 Google Directory API 中,我找不到获取 Google Apps 特定组织单位中所有用户的方法。可能吗?如何?根据 Google Directory API 文档,程序员可以获取所有的组织单元,或者整个域的所有用户,但是没有关于如何获取一个组织单元的用户的描述。此功能对于构建组织/用户层次结构树至关重要。请帮忙,谢谢。

【问题讨论】:

    标签: api google-apps google-api-client google-api-dotnet-client


    【解决方案1】:

    无法获取单个 OU 下的用户列表(并且只能获取这些用户)。但是,您只需调用以下命令即可获取 Google Apps 实例中的完整用户列表及其 OU:

    https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&fields=nextPageToken%2Cusers(orgUnitPath%2CprimaryEmail)
    

    基于 I/O 时的Vic Fryzel's presentation,我相信 Google 计划继续改进查询参数的功能,最终允许基于 OU(以及其他查询参数)的查询。

    【讨论】:

    • 我无法使用 2-legged oauth 使 Directory api 工作。有什么建议吗?
    • 尝试使用developers.google.com/accounts/docs/OAuth2WebServer 的指南进行身份验证。只需要一次用户输入(以获取授权码),并且需要有权访问用户列表的 Google Apps 用户才能工作。
    • 您需要为 API 项目启用 Admin SDK,然后才能访问 Google Directory API。
    【解决方案2】:

    在与 google 开发关系团队反复讨论后,我得以在列表用户调用中添加查询参数 orgUnitPath=/SOMEPATH 使其正常工作。 以下是使用目录 API 的 google api php 客户端的示例: $users = $directory->users->listUsers(array("domain"=>"example.com","query"=>"orgUnitPath=/SOMEPATH"));

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:
      UsersResource.ListRequest request = service.Users.List(); 
      request.Customer = "my_customer";
      request.Query = "orgUnitPath=" + "'" + "/testOu/under testOu/testOu1" + "'"; 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-18
        • 1970-01-01
        • 2014-03-15
        相关资源
        最近更新 更多