Json Microsoft Graph Explorer中返回的不同用户对象
我正在使用Microsoft Graph API。但是,我有一个问题/担心,API根据调用的端点为用户返回不同的值 下面是Json Microsoft Graph Explorer中返回的不同用户对象,json,microsoft-graph-api,Json,Microsoft Graph Api,我正在使用Microsoft Graph API。但是,我有一个问题/担心,API根据调用的端点为用户返回不同的值 下面是https://graph.microsoft.com/v1.0/me/endpoint { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity", "id": "VALUE GOES HERE", "businessPhones": [], "
https://graph.microsoft.com/v1.0/me/
endpoint
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"id": "VALUE GOES HERE",
"businessPhones": [],
"displayName": "Lname, Andrew",
"givenName": "Andrew",
"jobTitle": "MY TITLE",
"mail": "andrew.lname@email.com",
"mobilePhone": null,
"officeLocation": "123 Business Street",
"preferredLanguage": null,
"surname": "Lname",
"userPrincipalName": "andrew.lname@email.com"
}
调用/me/manager
和/users/{ID}
等时,此格式保持不变
然而,当我们调用/me/people
时,我们会得到一个更大、更完整的用户对象
{
"id": "ID VALUE HERE",
"displayName": "LName, Andrew",
"givenName": "Andrew",
"surname": "LName",
"birthday": "",
"personNotes": "",
"isFavorite": false,
"jobTitle": "MY TITLE",
"companyName": "MY COMPANY NAME",
"yomiCompany": "",
"department": "MY DEPARTMENT",
"officeLocation": "123 Business Street",
"profession": "",
"userPrincipalName": "andrew.lname@email.com",
"imAddress": "sip:andrew.lname@email.com",
"scoredEmailAddresses": [{
"address": "andrew.lname@email.com",
"relevanceScore": 285
}],
"phones": [{
"type": "business",
"number": "(555) 555-5555"
}],
"postalAddresses": [],
"websites": [],
"personType": {
"class": "Person",
"subclass": "OrganizationUser"
}
}
首先,有人知道为什么会有差异吗?更重要的是,有人知道我如何总能检索到更健壮的用户对象吗?有两件事:
个人
可以表示Outlook中的个人联系人、组织GAL中的联系人或最近的电子邮件或Skype通信构造的联系人。与此相对应的是用户
,它始终代表组织Active Directory中的用户$select
参数的用户
对象时,Microsoft Graph将仅返回用户
属性的子集。这样做是为了通过减少默认情况下返回的属性数量来节省带宽(您可能会惊讶于有多少调用/me
只是为了检索DisplayName
)。从:
注意:获取用户只会返回一组默认属性(businessPhones
,displayName
,givenName
,id
,jobTitle
,mail
,officeLocation
,preferredLanguage
,姓氏
,userPrincipalName
)。使用$select
获取用户对象的其他属性和关系
换句话说,当您调用/v1.0/me
时,Microsoft Graph会自动将$select=businessPhones、displayName、givenName、id、jobTitle、mail、mobilePhone、officeLocation、preferredLanguage、姓氏、userPrincipalName
附加到您的请求中。如果您指定自己的$select
,它将使用您提供的我已经就这个问题与微软公司进行了多次对话。此时,他们无法回答。他们认识到/me用户对象和/people用户对象之间的数据模型和数据值是不同的,但他们不知道它们是如何或为什么不同的。它们显然是来自不同数据源的不同数据模型,但没有图表说明它们从何处获取数据。我被告知,这仍然只是测试版,他们将在发布前协调这两个数据模型,但他们不确定何时发布