如何从 REST API 复制 outlook office 365 中 'Directory' 文件夹中的联系人?

How to copy contacts from the 'Directory' folder in outlook office 365 from the REST API?

登录outlook office 365界面管理his/her联系人时,用户点击UI和select左上角九个方块的蓝色图标"Contacts" 磁贴。在左侧,用户会看到文件夹 "My contacts"、"Directory" 和 "Groups"。至少,我是这样看的。

我设法使用office 365的RESTAPI查询"My contacts"中列出的联系人如下:

GET outlook.office365.com/api/v1.0/me/contacts?$top=200

我很高兴。但系统要求我导入 "Directory" 文件夹中列出的联系人。

所以我在 doc 中浏览了一下,看到我可以查询特定的联系人文件夹:

GET https://outlook.office.com/api/{version}/me/contactfolders/{contact_folder_id}/contacts

问题是我找不到对应"Directory"的{contact_folder_id}。对端点的查询:

GET https://outlook.office.com/api/{version}/me/contactfolders

returns 一个空数组,我什至没有看到 "My contacts" 文件夹。

知道如何获得这些吗?我暗自担心我必须与全局图 API 交谈才能获得那些 AzureAD 联系人,这意味着我应该获得一个新令牌,从而使代码复杂化一些。如果有更简单的方法,那将是非常有帮助的!

Outlook API 只能访问 Outlook 联系人,即用户存储在其个人联系人文件夹中的联系人。对于目录联系人,您需要访问该目录,如您所述,该目录位于 Azure AD 中。您确实需要使用 Graph API 来访问它们。

您提到令牌管理增加了复杂性。您可能会考虑的一件事是使用 unified API, which gives access to both Azure AD and Outlook data using one token. It's currently in preview, and there's a getting started here: https://msdn.microsoft.com/en-us/office/office365/howto/get-started-with-office-365-unified-api