调用Graph API获取用户最近登录时间时出现无效filter子句错误
Microsoft Graph查询登录时间Invalid filter clause报错修复方案
- 核心语法问题1:日期格式化错误
你使用的yyyy-MM-ddTHH-mm-ssZ格式不符合ISO 8601标准,时分秒之间的分隔符应该为冒号,正确格式为yyyy-MM-ddTHH:mm:ssZ。 - 核心语法问题2:筛选语句缺少单引号包裹
OData筛选规则要求日期、字符串类型的常量必须用单引号包裹,你当前拼接的筛选语句直接传入了日期值,未加单引号,导致语法识别失败。 - 其他需确认的配置项
- 接口版本:signInActivity属性最初仅在Beta版端点提供,目前v1.0版已支持该属性,若你使用的是旧版本SDK,可手动切换到Beta端点解决
- 权限配置:调用该接口需要申请
AuditLog.Read.All和User.Read.All权限,且需要租户管理员完成授权才能正常返回数据
修正后的参考代码:
string date = DateTime.Today.AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ssZ"); var users = await client.Users .Request() .Filter($"signInActivity/lastSignInDateTime le '{date}'") .GetAsync();
内容的提问来源于stack exchange,提问作者MM1010
相关产品推荐
相关产品推荐

