我遇到了Microsoft Graph API的问题...目前我有一个使用公共v2端点与Microsoft / Azure进行openid集成的Web应用程序。
我们正在尝试获取已登录的用户公司名称和工作信息。官方文档说我们需要向MS Graph API发出请求。
我们正在Microft Graph Explorer上测试它,但它似乎不起作用。
我们在应用中选择了“User.Read”作为权限,然后尝试了这些端点:
https://graph.microsoft.com/v1.0/me/
https://graph.microsoft.com/v1.0/me?$select=companyName,jobTitle
https://graph.microsoft.com/v1.0/users/?$select=companyName,jobTitle
在用户/备注部分的MS官方文档(https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference)中,它清楚地说明了这一点
"On reads, only a limited number of properties are returned by default. To read properties that are not in the default set, use $select"
这个文档已经过时了吗? 我试图为开发人员提供MS支持,但他们回答说我应该在Stack Overflow上问这个... 那么开发人员可能没有官方支持? 是否真的可以从MS帐户获得公司名称和职位?
提前致谢!
修改。使用MS graph explorer屏幕截图更新问题
edit.2。使用正确的编码更新屏幕截图。
此外,它是一个MS帐户而不是Azure帐户,因为我们的Web应用程序在公共v2端点上接受这两个帐户。
更新
答案 0 :(得分:2)
文档是正确的,默认情况下我们只返回user properties的一个子集:
如果您需要一组不同的属性,可以使用$select
查询参数请求它们。您在问题中提供的查询应该可以正常工作。例如,当我在Graph Explorer中执行https://graph.microsoft.com/v1.0/me?$select=companyName
时(使用我的凭据登录后),我得到以下内容:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(companyName)/$entity",
"companyName": "MICROSOFT"
}
有关MSA的更新
当针对Microsoft帐户(MSA)使用Microsoft Graph时,在表达的属性方面存在一些差异。由于MSA根据定义是个人/个人帐户,因此职位名称和办公地点等组织属性根本不适用。