【问题标题】:How to use $expand API parameter with $select on list users API of Microsoft graph?如何在 Microsoft graph 的列表用户 API 上使用 $expand API 参数和 $select?
【发布时间】:2020-07-29 06:17:38
【问题描述】:

我们正在使用 Microsoft Graph API (https://graph.microsoft.com/v1.0/) 从 Azure Active Directory (AAD) 获取所有用户。 我们得到基本的用户参数作为响应。 在列表用户 API 分页响应中,我们没有得到用户的 managergroupsroles。我们需要使用他的 AAD id 为单个用户调用单独的 API 并获取此附加信息。我们在 API 文档中遇到了这个 $expand 参数。其中声明如下,

注意:并非所有关系和资源都支持 $expand 查询参数。例如,您可以扩展用户的 directReports、manager 和 memberOf 关系,但不能扩展其事件、消息或照片关系。并非所有资源或关系都支持在扩展项目上使用 $select。

这个注释清楚地表明我们应该为用户获取 manager 和 memberOf 属性。但是当我们用/users API 尝试这个时,它会抛出错误的请求。

我们再次在标题为Known issues with Microsoft Graph的文章中进行了更多搜索,其中包含$exapnd的信息如下,

$expand:

  • 不支持 nextLink
  • 不支持超过 1 级的展开
  • 不支持额外参数($filter、$select)

$expand 的确切用途是什么,我们如何在List users API 中获取其他信息,例如用户的经理、角色和组,这样我们就不必为每个用户调用单独的 API?

【问题讨论】:

    标签: microsoft-graph-api


    【解决方案1】:

    Microsoft Graph 中/beta 版本下的以下 API 可能会发生变化。不支持在生产应用程序中使用这些 API。

    $expand-通常,您可以在单个请求中查询资源的属性或其关系之一,但不能同时查询两者。您可以使用 $expand 查询字符串参数在结果中包含单个关系(导航属性)引用的扩展资源或集合。

    Memberof 给出用户所属的组、目录角色和管理单元。

    https://graph.microsoft.com/beta/users?$expand=memberof
    

    要获取经理详细信息,请使用以下查询

    https://graph.microsoft.com/beta/users?$expand=manager
    

    【讨论】:

    • 是的,我们想通了 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多