我有一个使用Microsoft Graph API获取配置文件数据的应用程序。该应用程序应该能够获取Work / School Azure帐户和使用者Azure帐户的配置文件。我的问题是,当我检索在工作/学校帐户而不是在消费者帐户上公开的数据时,出现404错误。换句话说,我的应用程序应以相同的方式处理工作/学校帐户和消费者帐户,只获取Microsoft Graph公开的消费者帐户数据,而在未暴露数据时不返回错误。
使用消费者帐户的授权令牌调用此端点https://graph.microsoft.com/v1.0/me/
,我得到以下响应:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(etc)/$entity",
"displayName": "<fullname>",
"surname": "<lastname>",
"givenName": "<firstname>",
"id": "value",
"userPrincipalName": "value@hotmail.com",
"businessPhones": [],
"jobTitle": null,
"mail": null,
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null
}
使用工作/学校帐户致电https://graph.microsoft.com/v1.0/me/?$select=birthday
,我得到了可以使用的数据。同时使用相同的授权令牌调用https://graph.microsoft.com/v1.0/me/?$select=birthday
会返回:
{
"error": {
"code": "ResourceNotFound",
"message": "Resource not found.",
"innerError": {
"request-id": "5dac0b98-0335-4de2-b8fa-3b9a2dfbe378",
"date": "2019-04-26T23:23:21"
}
}
}
有什么方法可以检索消费者帐户的个人资料数据,同时仍然尝试在工作/学校帐户中检索未公开的数据而没有返回404?
答案 0 :(得分:0)
由于您请求的数据不存在(birthday
),因此您应该得到404 Not Found
的响应。根据{{3}}:
404(未找到)状态代码表示原始服务器未找到目标资源的当前表示,或不愿意透露该资源的存在。