如何获取Microsoft Teams会议实际参会起止时间?Graph API调用无数据
解决Graph API获取Teams会议出席报告无数据的思路
确认会议状态与数据同步时机
只有已结束的Teams会议才会生成出席报告,正在进行的会议调用接口必然返回空。另外会议结束后需要等待5-15分钟,Graph才会完成数据同步,别刚结束就立刻调用。核对meetingId的有效性
必须使用Teams在线会议的专属会议ID,不能用日历事件的ID。可以通过调用GET /me/events或GET /users/{user-id}/events接口,从返回结果的onlineMeeting字段里提取id,这个才是符合要求的meetingId。检查权限配置是否到位
应用必须申请正确的权限并获得对应授权:- 后台服务调用用应用权限:
OnlineMeetingArtifact.Read.All - 用户上下文调用用委派权限:
OnlineMeetingArtifact.Read
注意这些权限需要管理员同意,且委派权限场景下,当前用户必须是会议的组织者、参与者,或者拥有该会议的访问权限。
- 后台服务调用用应用权限:
确认接口调用路径正确
正确的接口格式分两种:- 委派权限(当前用户是会议组织者):
GET /me/onlineMeetings/{meetingId}/attendanceReports - 应用权限:
GET /users/{organizerId}/onlineMeetings/{meetingId}/attendanceReports
检查你调用的路径是否符合上述格式,避免拼写错误或路径结构错误。
- 委派权限(当前用户是会议组织者):
排查会议类型是否支持
不是所有Teams会议都能生成出席报告:- 支持:已安排的正式会议、网络研讨会
- 不支持:即时发起的“立即开会”、私人会议、团队频道内的临时快速会议(部分场景)
用Graph Explorer验证问题
用微软官方的Graph Explorer工具,使用相同的权限和meetingId调用接口:- 如果工具能返回数据,说明你的应用代码或权限配置存在问题
- 如果工具也返回空,说明该会议本身未生成出席报告,需检查会议设置或等待更长时间同步
内容的提问来源于stack exchange,提问作者Hysteria
相关产品推荐
相关产品推荐

