使用 Graph API,我们获取某个 Outlook 事件。除其他详细信息外,活动还包括以下格式的组织者信息:
"organizer": {
"emailAddress": {
"address": "[email protected]",
"name": "myroom"
}
}
当我们尝试使用 Graph API 端点 /users/{id | 检索有关该用户的更多信息时userPrincipalName},我们有时会遇到响应表明用户不存在。
在对 Exchange Online (Office 365) 设置进行调查后,我们发现某些用户配置了别名或辅助/备用 SMTP 电子邮件地址,并且这些辅助地址包含在 Graph API 响应中组织者的 emailAddress 对象中。这意味着事件数据中的地址字段可能引用这些辅助地址之一,而不是用户的主要电子邮件或用户主体名称 (UPN)。
问题:
是否有一种方法可以使用 /users Graph API 端点检索用户信息,而无需仅依赖用户主体名称? 或者,是否有一种方法可以使用辅助电子邮件地址确定用户的用户主体名称或对象 ID?
限制: 我们无法修改 Exchange Online 设置,因为它们由我们的客户管理。
所有主要和次要电子邮件地址都将成为 Proxyaddresses 属性的一部分,因此您只需对其进行过滤,即可将任何有效地址解析回用户的对象 ID,这样就可以始终正常工作,例如
https://graph.microsoft.com/v1.0/users?$filter=proxyAddresses/any(x:x eq 'smtp:[email protected]')&$select=id
那个
https://graph.microsoft.com/v1.0/users/150bb06c-1c9a-4ac2-8b55-8cf15854b555/events