如何在Microsoft Graph REST API中筛选最近90天登录活动记录(无需硬编码日期)
Microsoft Graph 日期筛选器无硬编码解决方案
首先明确:Microsoft Graph的OData筛选器不支持在URL中直接写日期计算逻辑(比如你设想的today()-days(90)这种写法无法被API识别),必须传入具体的ISO 8601格式日期字符串。但不用依赖PowerShell,用Postman自带功能就能实现自动计算日期:
步骤1:添加预请求脚本计算日期
在Postman当前请求的「Pre-request Script」标签页中,粘贴以下代码:
// 计算当前日期往前推90天的日期 const ninetyDaysAgo = new Date(); ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90); // 格式化为YYYY-MM-DD的ISO 8601格式(如果需要带时间,直接用ninetyDaysAgo.toISOString()即可) const formattedDate = ninetyDaysAgo.toISOString().split('T')[0]; // 将计算结果存入Postman环境变量 pm.environment.set("ninetyDaysAgo", formattedDate);
步骤2:在请求URL中使用变量
把原来硬编码的日期替换为Postman变量,注意要筛选最近90天有活动的记录,应该用ge(大于等于)而非le(小于等于),最终URL如下:
https://graph.microsoft.com/beta/users?$select=signInActivity&$filter=signInActivity/lastSignInDateTime ge {{ninetyDaysAgo}}
补充说明
- 如果需要精确到时间(比如包含时分秒),可以去掉代码里的
.split('T')[0],直接使用ninetyDaysAgo.toISOString(),生成的格式是YYYY-MM-DDTHH:mm:ssZ,符合Graph API的日期格式要求。 - 首次运行前需要确保Postman已创建环境(可以在「Environment」面板新建一个空环境),否则变量无法保存。
内容的提问来源于stack exchange,提问作者coreyperkins
相关产品推荐
相关产品推荐

