Graph API查询已删除Azure AD组报不支持deletedDateTime排序错误
问题原因
该报错和API权限配置无关,核心原因是:调用Microsoft Graph查询已删除目录资源时,deletedDateTime属于高级查询支持的排序字段,默认普通查询模式下不支持直接将该字段传入$orderBy参数做服务端排序,因此返回Request_UnsupportedQuery错误。
解决方案
你可以根据业务场景二选一:
方案1:本地排序(兼容性最高,无额外配置要求)
直接移除查询语句中的$orderBy参数,先拉取全量已删除组数据,再在业务代码侧对返回结果的deletedDateTime字段做排序即可。
调整后的请求为:GET https://graph.microsoft.com/v1.0/directory/deletedItems/microsoft.graph.group?$count=true&$select=id,displayName,deletedDateTime注意原查询中
DisplayName的写法不符合Graph API驼峰命名规范,建议修正为小写开头的displayName,避免潜在的兼容问题。如果返回结果存在分页,需跟随@odata.nextLink逐页拉取完所有数据后再执行排序。方案2:添加高级查询请求头,实现服务端排序
如果你需要直接在服务端完成排序,只需要给请求添加强制要求的ConsistencyLevel请求头,值设为eventual即可,原查询携带的$count=true是高级查询的必填项,不需要移除。
调整后的完整请求示例:GET https://graph.microsoft.com/v1.0/directory/deletedItems/microsoft.graph.group?$count=true&$orderBy=deletedDateTime asc&$select=id,displayName,deletedDateTime ConsistencyLevel: eventual
内容的提问来源于stack exchange,提问作者Ashish8970
相关产品推荐
相关产品推荐

