首页 > 解决方案 > 如何在 Graph API 中展开两个项目

问题描述

我想获取用户的直接报告,以及图形 api 中的照片。如果我尝试:

var users = await graphClient.Users.Request().Expand("DirectReports", "Photo").GetAsync();

我收到一条错误消息,指出 Expand 方法不接受两个参数。我尝试了以下方法:

var users = await graphClient.Users.Request().Expand("DirectReports", "Photo").GetAsync();
var users = await graphClient.Users.Request().Expand("DirectReports;Photo").GetAsync();
var users = await graphClient.Users.Request().Expand("DirectReports").Expand("Photo").GetAsync();

但它们也不起作用。有没有办法使用两个扩展?或者是否有一种解决方法可以让我通过一个电话获得每个用户的照片和直接报告?

标签: c#microsoft-graph-api

解决方案


根据文档,您只能在一个 RelationShip 上使用扩展。

您可以使用 $expand 查询字符串参数在结果中包含单个关系(导航属性)引用的扩展资源或集合。

目前也不支持扩展照片。它记录在这里

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

如果您想一次扩展 2 个受支持的关系,您应该使用不同的扩展关系发出 2 个单独的 HTTP 请求,并使用用户 ID 来选择它们。


推荐阅读