You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MS Graph API for Java获取用户所属组名称失败求助

问题

我尝试通过MS Graph API for Java获取某用户的组成员身份。该用户属于7个组,但我仅能获取到组ID(UUID格式),displayName始终为null。请问如何获取组名称?

初始代码

User usr = gsc.users(MYUSERID).buildRequest().get();
System.out.println("User: " + usr.displayName);
        
DirectoryObjectCollectionWithReferencesPage doc = gsc.users(MYUSERID).memberOf().buildRequest().get();
java.util.List<DirectoryObject> lst = doc.getCurrentPage();
for (int i = 0; i < lst.size(); i ++)
{
    if (lst.get(i) instanceof Group)
    {
        Group gp = (Group) lst.get(i);
        System.out.println("Member: " + gp + " / " + gp.id + " / " + gp.displayName);
    }
}

输出结果

User: MyTestUser
Member: com.microsoft.graph.models.Group@c514b123 / 83091123-c2ea-4883-8a2b-faab7de7433 / null
...

后续尝试(均无效)

  • 写法1:
for (int i = 0; i < lst.size(); i ++)
{
   System.out.println(((Group)doc.getCurrentPage().get(i)).displayName);
}
  • 写法2:改用memberOfAsGroup
GroupCollectionPage doc = gsc.users(this.azureuserid).memberOfAsGroup().buildRequest().get();
java.util.List<Group> lst = doc.getCurrentPage();
for (int i = 0; i < lst.size(); i ++)
{
  Group gp = lst.get(i);
  System.out.println(i + "  Member: " + gp + " / " + gp.id + " / " + gp.displayName + "  " + gp.description);
}

解决方案

问题根源是MS Graph API的默认返回规则:调用memberOf或memberOfAsGroup时,API仅返回资源的核心属性(如id),不会自动包含displayName、description这类扩展属性,必须显式指定要获取的字段。

修改后的代码示例

通过select方法声明需要的属性,比如id、displayName、description:

GroupCollectionPage doc = gsc.users(this.azureuserid)
    .memberOfAsGroup()
    .buildRequest()
    .select("id,displayName,description") // 明确指定要返回的属性
    .get();

java.util.List<Group> lst = doc.getCurrentPage();
for (int i = 0; i < lst.size(); i++) {
    Group gp = lst.get(i);
    System.out.println(i + "  Member: " + gp.id + " / " + gp.displayName + "  " + gp.description);
}

关键说明

  • 必须用select()方法指定需要的属性,否则Graph API不会返回对应字段,导致Java对象中该属性值为null。
  • 若需要更多组属性,直接在select参数中添加对应的属性名称即可,多个属性用逗号分隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:25:19