如何使用应用权限从Teams Meetings获取考勤报告
使用应用权限获取租户内所有Teams会议考勤报告
1. 是否可以通过应用权限获取考勤报告?
可以,但仅支持已录制的Teams会议。未录制的会议无法通过应用权限获取考勤数据,这是当前Microsoft Graph API的限制。
2. Azure中需配置的API权限
在Azure AD应用注册中添加以下应用权限(需全局管理员同意):
- 权限类型:应用权限
- 权限名称:
OnlineMeetings.Read.All - 作用:允许应用读取租户内所有用户的已录制Teams会议详情,包括考勤报告。
3. Microsoft Graph API端点及使用步骤
步骤1:获取租户内所有已录制的会议
需先遍历租户内的用户,逐个获取其已录制的会议(应用权限下OnlineMeetings.Read.All允许访问所有用户的会议):
端点:
GET /users/{user-id}/onlineMeetings?$filter=isRecording eq true
{user-id}:租户内任意用户的ID或用户主体名称(UPN)- 过滤条件
isRecording eq true确保只返回已录制的会议
示例请求(curl):
curl --request GET \ --url 'https://graph.microsoft.com/v1.0/users/john@contoso.com/onlineMeetings?$filter=isRecording eq true' \ --header 'Authorization: Bearer {your-access-token}'
步骤2:获取单个会议的考勤报告
针对步骤1返回的每个会议ID,调用以下端点获取考勤数据:
端点:
GET /users/{user-id}/onlineMeetings/{meeting-id}/attendanceReports
{meeting-id}:步骤1中获取的会议唯一ID
示例请求(curl):
curl --request GET \ --url https://graph.microsoft.com/v1.0/users/john@contoso.com/onlineMeetings/MSpkYzE3Njc0Yy04MWQ5LTRhZGItYmZ/attendanceReports \ --header 'Authorization: Bearer {your-access-token}'
额外注意事项
- 考勤报告并非实时生成,通常在会议结束后几小时内可访问。
- 应用权限的访问令牌需通过客户端凭据流获取:在Azure AD注册应用后,使用客户端ID、客户端密钥调用令牌端点
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token,参数包含grant_type=client_credentials和scope=https://graph.microsoft.com/.default。
内容的提问来源于stack exchange,提问作者Nana0001
相关产品推荐
相关产品推荐

