You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Graph API按createdDateTime排序用户请求报错问题咨询

问题:Azure Graph API Beta按createdDateTime排序用户返回400错误

我尝试通过Azure Graph API的beta版本,按createdDateTime字段对用户进行排序查询,但请求返回400(Bad Request)错误,请求链接如下:

https://graph.microsoft.com/beta/users?$select=displayName,userPrincipalName,mail,id,createdDateTime,signInActivity,userType&$top=100&$orderby=createdDateTime desc

而使用相同请求结构,按displayName排序时可正常执行:

https://graph.microsoft.com/beta/users?$select=displayName,userPrincipalName,mail,id,createdDateTime,signInActivity,userType&$top=100&$orderby=displayName desc

我的API权限正常,能在查询结果中获取到createdDateTime字段。若此方法不可行,请问获取最近注册的1000个用户的最优方式是什么?

更新于2024年6月15日

多数建议添加ConsistencyLevel和Count参数,但添加后仍出现相同错误,详见Postman截图:
Postman请求报错截图


解决方案

针对排序报错的排查与修复

Graph API Beta中对users的createdDateTime字段排序,必须同时满足两个要求:

  1. 请求头添加ConsistencyLevel: eventual
  2. 查询参数包含$count=true

若添加后仍报错,检查以下细节:

  • 确认请求头的ConsistencyLevel拼写正确,值为小写的eventual
  • 检查URL参数拼接是否正确,完整请求URL示例:
https://graph.microsoft.com/beta/users?$select=displayName,userPrincipalName,mail,id,createdDateTime,signInActivity,userType&$top=100&$orderby=createdDateTime desc&$count=true
  • 确保请求方法为GET,无其他语法错误(比如参数符号、空格问题)

获取最近1000个注册用户的替代方案

如果上述方法仍无法解决,可采用以下方式:

  • 本地排序法:不使用API排序,每次用$top=100拉取用户数据,通过@odata.nextLink循环分页获取足够数量的用户后,在本地按createdDateTime降序排序,取前1000个。注意:用户总数过大时效率较低,需处理分页逻辑。
  • 时间范围筛选法:通过$filter缩小查询范围,比如$filter=createdDateTime ge 2023-06-15T00:00:00Z(根据实际情况调整时间),再配合排序和必要的头参数,减少返回数据量后排序更容易成功。
  • 切换至v1.0版本:尝试使用Graph API v1.0版本执行排序请求,createdDateTime字段在v1.0中同样支持排序,可能避开Beta版本的兼容性问题。

内容的提问来源于stack exchange,提问作者BikerP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:15:01