调用GET communications/calls接口返回空值问题求助
解决Microsoft Graph communications/calls接口返回空数组问题
问题说明
调用GET /communications/calls接口期望获取活跃的一对一通话和会议通话,但返回结果中value字段为空,响应示例:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#communications/calls",
"value": []
}
核心排查与解决方向
- 权限配置缺失:机器人应用必须配置并获得正确的应用权限,该接口支持的应用权限为
Calls.Read.All或Calls.ReadWrite.All,需确保管理员已完成权限授予操作,且权限未被撤销。 - 通话范围限制:该接口仅返回机器人已加入的通话,并非租户内所有活跃通话。若机器人未参与任何通话,返回空数组是正常结果。
- 身份验证有效性:确认调用时使用的令牌有效,解析令牌检查
roles字段是否包含所需的权限标识,排除令牌过期或权限范围不足的问题。 - API版本与过滤参数:确保使用v1.0或beta版本的Graph API;若需仅获取活跃通话,可添加查询参数
$filter=state eq 'inProgress'缩小返回范围。
验证步骤
- 登录Azure门户检查应用注册的权限列表,确认目标权限已添加并完成管理员同意
- 使用Graph Explorer模拟调用,验证权限和令牌的有效性
- 让机器人加入一个测试通话,再次调用接口确认是否能返回对应通话记录
内容的提问来源于stack exchange,提问作者Tholinhlanhla
相关产品推荐
相关产品推荐

