如何通过Graph API获取Teams群组在线会议参会报告及解决权限报错
解决思路:获取Teams群组会议参会报告的403问题
核心原因
你使用的/me/onlineMeetings端点仅返回当前用户作为组织者创建的在线会议,你不是目标群组会议的组织者,因此返回403是预期行为,和现有权限无关。
具体解决方案
1. 直接从群组事件提取在线会议ID
你已经能获取群组活动列表,无需通过joinURL查询,直接从群组事件的onlineMeeting属性提取会议ID:
GET https://graph.microsoft.com/v1.0/groups/{groupId}/events?$select=id,subject,onlineMeeting
返回结果中,onlineMeeting.id就是该会议的唯一标识,用这个ID去查询参会报告。
2. 使用正确的参会报告端点
调用onlineMeetings/{meetingId}/attendanceReports端点获取报告,你的token已包含所需的OnlineMeetingArtifact.Read.All权限,但需满足两个前提:
- 你是该会议的参与者
- 会议组织者在会议设置中开启了「允许参与者下载/查看参会报告」
请求示例:
GET https://graph.microsoft.com/v1.0/onlineMeetings/{meetingId}/attendanceReports
3. 若只能通过joinURL获取会议信息
如果只能拿到joinURL,可解析URL中的会议会话ID(即meetup-join/后/[时间戳]前的部分,比如你提供的URL中的19:g177zGQUFQkdkWFhVceGsepJ7Vm2I2eBFQpJ4V7VhPA1@thread.tacv2),然后通过Chat端点关联在线会议:
GET https://graph.microsoft.com/v1.0/chats/{chatId}/onlineMeeting
拿到在线会议对象后,再用其id调用参会报告端点。
4. 权限与访问限制说明
- 委托权限下,你无法访问未参与的会议报告
- 即使拥有
OnlineMeetingArtifact.Read.All,仍需会议组织者开放参与者查看报告的权限
内容的提问来源于stack exchange,提问作者Aleksey
相关产品推荐
相关产品推荐

