从https://graph.microsoft.com/v1.0/me/contacts
获取联系人时,我获得了用户的所有属性,例如:
{
displayName: 'Joe Joeson',
jobTitle: 'Administrator',
department: 'HK',
mobilePhone: '09823987234',
businessPhones: '8934598743',
mail: 'joe@mail.com',
}
但是,当我获得该组织的所有用户(使用https://graph.microsoft.com/v1.0/users?$select=displayName,jobTitle,department,mobilePhone,businessPhones,mail,userType
)时,相同的联系人不会获得某些属性,例如:
{
displayName: 'Joe Joeson',
jobTitle: null,
department: null,
mobilePhone: null,
businessPhones: null,
mail: 'joe@mail.com',
}
为什么呢?它的联系方式一样吗?或者我错过了什么?我应该以另一种方式从组织获得所有联系人吗?
我已确认所有属性均已在https://portal.azure.com
答案 0 :(得分:2)
/contacts
和/users
个端点返回两个不同的实体。 contact
实体表示来自当前用户的Exchange邮箱的Outlook联系人,而user
实体表示来自租户的Active Directory实例的用户目录对象。
您看到两个不同结果的原因是因为您返回了两个不同的实体。第一个是来自Outlook / Exchange邮箱的Joe Joeson contact
,第二个是来自Active Directory的Joe Joeson user
。
您/users
发现信息较少的原因是您请求了Read all users' basic profiles
(又名User.ReadBasic.All
)范围。此范围只能查看user
资源中的有限数量的属性:displayName
,givenName
,surname
,photo
和mail
。