MS Graph带$select查询用户邮箱报Request_ResourceNotFound的原因及解决
问题描述
调用Microsoft Graph API时出现异常:
- 使用带
$select参数的请求地址:https://graph.microsoft.com/v1.0/users/XXXX-XXXX-XXXX-XXXX-XXXX94105a4$select=mail,请求失败,返回错误信息:
{ "error": { "code": "Request_ResourceNotFound", "message": "Resource 'XXXX-XXXX-XXXX-XXXX-XXXX94105a4$select=mail' does not exist or one of its queried reference-property objects are not present." } }
- 使用不带
$select参数的请求地址:https://graph.microsoft.com/v1.0/users/XXXX-XXXX-XXXX-XXXX-XXXX94105a4,可成功获取用户的mail属性。
原因分析
核心问题是请求URL格式错误:$select作为查询参数,没有用?与前面的资源路径分隔,导致API将XXXX-XXXX-XXXX-XXXX-XXXX94105a4$select=mail整体识别为用户ID,而这个ID并不存在,因此返回Request_ResourceNotFound错误。
解决方法
修正URL的参数分隔格式,在资源路径和$select参数之间添加?分隔符,正确的请求地址应为:
https://graph.microsoft.com/v1.0/users/XXXX-XXXX-XXXX-XXXX-XXXX94105a4?$select=mail
调整后API会正确解析用户ID和$select查询参数,仅返回指定的mail属性。
内容的提问来源于stack exchange,提问作者ΩmegaMan
相关产品推荐
相关产品推荐

