如何修复Microsoft Graph People查询中的无效URL过滤错误?
修正Microsoft Graph API查询以获取特定用户邮箱信息
问题原因
你的查询错误使用了/me/people端点,这个端点用于获取当前用户的联系人或相关人员,而非组织内的Azure AD用户。该端点不支持对userPrincipalName字段使用endsWith过滤,这是导致ErrorInvalidUrlQueryFilter错误的核心原因。
修正后的查询
应该使用/users端点来查询组织内的用户,同时调整参数并添加必要的请求头:
请求URL
https://graph.microsoft.com/v1.0/users?$search="displayName:Jane Doe"&$select=displayName,scoredEmailAddresses,userPrincipalName&$count=true&$filter=endsWith(userPrincipalName, '@something.com')
必要请求头
发送请求时必须包含以下两个头信息:
ConsistencyLevel: eventual:支持$search与$filter结合使用,同时启用$countAuthorization: Bearer {你的访问令牌}:身份验证令牌
关键修正点
- 替换端点:将
/me/people改为/users,这是查询组织内用户的正确端点 - 完善
$search语法:明确指定搜索字段displayName,同时确保空格被正确编码(工具通常会自动处理,但手动编写时需注意) - 添加请求头:
ConsistencyLevel: eventual是使用$search+$filter+$count组合的必要条件
验证说明
在Graph Explorer中测试时,需确保:
- 已登录具有用户读取权限的账号
- 在"请求头"选项卡中添加
ConsistencyLevel: eventual - 执行GET请求即可返回符合条件的用户数据
内容的提问来源于stack exchange,提问作者tlockhart
相关产品推荐
相关产品推荐

