You need to enable JavaScript to run this app. Graph API中如何同时扩展用户的DirectReports与Photo属性
优惠活动
大模型
产品
解决方案
定价
更多

Graph API中如何同时扩展用户的DirectReports与Photo属性

Graph API同时扩展多个导航属性的正确用法

之前写法不生效的具体原因

  • 向Expand方法传递两个字符串参数的写法:SDK不存在对应重载,编译阶段直接报参数数量不匹配的错误。
  • 用分号分隔两个扩展字段的写法:不符合OData规范中$expand的参数格式,多个待扩展导航属性需使用英文逗号分隔,分号会被接口识别为单个导航属性名称的一部分,无法匹配到实际存在的DirectReports和Photo属性。
  • 链式连续调用Expand的写法:SDK构建请求的逻辑中,每次调用Expand会直接覆盖之前设置的$expand查询参数,不会做拼接追加。因此先调用Expand("DirectReports")再调用Expand("Photo")时,最终请求里仅保留Photo的扩展配置,DirectReports的参数会被完全覆盖,无法返回对应数据。

可实现需求的单次调用代码

将两个待扩展的导航属性用英文逗号拼接为单个字符串,传入Expand方法即可:

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

常见注意事项

  • 权限要求:应用需提前申请匹配的权限范围,至少包含用户组织关系(直接下属)、用户头像的读取权限,否则即使参数配置正确,接口也会因权限不足返回空值或授权错误。
  • 返回值边界:若对应用户未设置公开头像,接口返回的Photo属性为null,属于正常逻辑,不是代码错误。
  • 版本适配:如果使用老旧版本的Graph SDK,在Users集合端点扩展Photo属性时可能出现返回值为空的问题,可升级SDK到稳定版本解决,也可在拿到用户列表后,针对缺失头像的用户单独调用单用户接口补全数据。

内容的提问来源于stack exchange,提问作者Luke Vanzweden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.06 22:06:07