使用MS Graph API按userPrincipalName筛选people报错,求正确查询语句
解决MS Graph API /people接口筛选userPrincipalName的错误问题
错误原因
/users/{user-id}/people端点不支持直接对userPrincipalName属性使用$filter,该属性不在此端点的可筛选属性列表中,因此会返回ErrorInvalidUrlQueryFilter错误。
正确查询语句
如果目标人员的userPrincipalName与其邮箱地址一致,可以通过筛选emailAddresses数组中的地址来实现需求。使用OData的any操作符遍历数组元素,判断地址是否以outlook.com结尾:
https://graph.microsoft.com/v1.0/users/{user id}/people?$filter=emailAddresses/any(e: endsWith(e/address, 'outlook.com'))
其他可选方案
- 如果上述方法不适用,可先获取该用户的所有
people结果,再在客户端进行筛选。 - 若需严格基于
userPrincipalName筛选,可先通过/users端点筛选符合条件的用户,再关联到目标用户的people列表(需额外权限和逻辑处理)。
内容的提问来源于stack exchange,提问作者abinitio
相关产品推荐
相关产品推荐

