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

如何通过Microsoft Graph获取会议室的AAD Object ID而非RoomId?

获取会议室的AAD Object ID而非RoomId

默认通过Microsoft Graph SDK获取会议室时,返回的room.Id是会议室实体自身的ID,而非对应的AAD Object ID。要获取AAD Object ID,需要显式指定返回aadObjectId属性,具体有两种实现方式:

方法一:使用SDK的Select方法指定返回属性

修改你的请求代码,通过Select方法明确要求返回aadObjectId(可同时保留其他需要的属性):

var roomUrl = graphClient.Places.AppendSegmentToRequestUrl("microsoft.graph.room");
var request = new GraphServicePlacesCollectionRequest(roomUrl, graphClient, null)
    .Select("aadObjectId, id, displayName"); // 添加需要的属性,其中aadObjectId就是AAD Object ID
var response = await request.GetAsync();

if (response.CurrentPage.Count > 0)
{
    foreach (var room in response.CurrentPage)
    {  
        // 这里room.AdditionalData["aadObjectId"]就是AAD Object ID
        Console.WriteLine($"AAD Object ID: {room.AdditionalData["aadObjectId"]}, Room ID: {room.Id}");
    }
}

说明:因为默认的Room实体类可能没有直接暴露aadObjectId属性,所以需要通过AdditionalData字典来获取该值。

方法二:直接在请求URL中添加$select参数

如果SDK的Select方法不生效,也可以直接构造包含$select参数的请求URL:

var roomUrl = graphClient.Places.AppendSegmentToRequestUrl("microsoft.graph.room?$select=aadObjectId,id,displayName");
var response = await new GraphServicePlacesCollectionRequest(roomUrl, graphClient, null).GetAsync();

if (response.CurrentPage.Count > 0)
{
    foreach (var room in response.CurrentPage)
    {  
        Console.WriteLine($"AAD Object ID: {room.AdditionalData["aadObjectId"]}");
    }
}

核心要点:aadObjectId字段就是会议室对应的AAD Object ID,只要在请求中指定返回该属性,就能从响应的附加数据中提取到它。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:50:33