如何获取在线会议出席报告? / 微软图表 API
How to get online meeting attendance report ? / Microsoft Graph API
我正在尝试获取参加会议的每个用户的出席间隔。我正在使用 Python 请求库。
当我用 https://graph.microsoft.com/beta/users/{user_id}/onlineMeetings/{meeting_id}/attendanceReports
调用 API 时
发生此错误:
"Application does not have permission to GetMeetingAttendanceReport
online meeting on behalf of this user."
当我通过 Graph Explorer 运行 相同的查询而不是 Python 请求库时,我成功获得了结果。
添加 OnlineMeetings.ReadAll
等权限和授予管理员同意没有帮助。
根据您的描述,您在使用Graph Explorer时成功得到了结果,所以通过相同的用户和相同的api权限应该可以得到正确的结果。恐怕您需要检查 azure 广告应用程序 api 权限。
转到 Azure 门户并找到您在 python 应用程序中使用的 Azure 广告应用程序。进入api权限blade查看api document中提到的委托权限OnlineMeetingArtifact.Read.All
是否已经加入权限列表
如果你想在你的python项目中使用应用程序权限,你应该在这里添加应用程序权限。
那么您应该通过此应用程序生成正确的访问令牌,无论是使用客户端凭据流生成应用程序令牌还是使用授权流来生成用户令牌。
如果您想先使用 http 请求进行测试,您可以像我下面的示例一样设置您的请求以生成应用程序权限令牌,然后使用它来调用您的 api。
尝试在 url 中使用“/meetingAttendanceReport”而不是“/attendanceReports”。
创建 application access policy 解决了问题。
对于遇到这种情况的人,请通过 Windows Powershell ISE 连接 Microsoft Teams,然后按照 document
中的步骤操作
我正在尝试获取参加会议的每个用户的出席间隔。我正在使用 Python 请求库。
当我用 https://graph.microsoft.com/beta/users/{user_id}/onlineMeetings/{meeting_id}/attendanceReports
发生此错误:
"Application does not have permission to GetMeetingAttendanceReport online meeting on behalf of this user."
当我通过 Graph Explorer 运行 相同的查询而不是 Python 请求库时,我成功获得了结果。
添加 OnlineMeetings.ReadAll
等权限和授予管理员同意没有帮助。
根据您的描述,您在使用Graph Explorer时成功得到了结果,所以通过相同的用户和相同的api权限应该可以得到正确的结果。恐怕您需要检查 azure 广告应用程序 api 权限。
转到 Azure 门户并找到您在 python 应用程序中使用的 Azure 广告应用程序。进入api权限blade查看api document中提到的委托权限OnlineMeetingArtifact.Read.All
是否已经加入权限列表
如果你想在你的python项目中使用应用程序权限,你应该在这里添加应用程序权限。
那么您应该通过此应用程序生成正确的访问令牌,无论是使用客户端凭据流生成应用程序令牌还是使用授权流来生成用户令牌。
如果您想先使用 http 请求进行测试,您可以像我下面的示例一样设置您的请求以生成应用程序权限令牌,然后使用它来调用您的 api。
尝试在 url 中使用“/meetingAttendanceReport”而不是“/attendanceReports”。
创建 application access policy 解决了问题。
对于遇到这种情况的人,请通过 Windows Powershell ISE 连接 Microsoft Teams,然后按照 document
中的步骤操作