在 Microsoft Graph 或 Outlook 中移动联系人或联系人文件夹 API

Move contacts or contact folders in Microsoft Graph or Outlook API

我的问题是是否可以更改 contactFolder 资源的 ParentFolderId 属性 and/or通过 Microsoft Outlook APIMicrosoft Graphcontact 资源以及如何。 (我已经知道 Microsoft Graph 正在使用 Microsoft Outlook API 来实现 post 中的 Outlook 功能。

我试过但是没有用。所以我确信不支持此功能。


我做了什么:

我已经尝试通过 PATCH 调用来完成。 PATCH 调用正常工作,返回 200 状态代码,我可以更改其他属性,但它不适用于 ParentFolderId,它只是被忽略了。

在线文档有一个示例,上面的内容应该可以工作。在示例中,他们在正文中包含了 ParentFolderID 并在响应中得到了它,但是由于我自己的尝试以及该示例似乎被嘲笑的事实,我开始相信这只是一个疏忽。这是该示例的 link:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/contactfolder_update

旁注:您不会在 Outlook API 文档中找到任何有关支持联系人文件夹中的 POST 和 PATCH 操作的信息,但 API 恰到好处地支持它们(参见 https://msdn.microsoft.com/en-us/office/office365/api/contacts-rest-operations)。 Graph API 文档在这方面更完整,因为它们还涵盖了联系人文件夹的 POST 和 PATCH 操作。


因此,以防万一 ParentFolderId 的更改得到支持并且我没有做正确的事情,这是我正在尝试的示例。以下是 outlook.office.com API v2.0 但我也使用了 v1.0 和 beta 版本的所有可能性,并且还使用了 graph.microsoft.com v1.0 和 beta 版本,相应地更改了属性的名称(outlook.com 道具在 Pascal 案例中)。

curl --request PATCH \
  --url https://outlook.office.com/api/v2.0/me/contacts/AQMkADAwATNiZmYAZC0wNTUAZi1mNjU1AC0wMAItMDAKAEYAAAM_h46UdfWbRLlZWFB3Ty59BwAxLPcv2HzQSobPUzuXLWg7AAAAAereLgAAADEs9y-YfNBKhs9TO5ctaDsAAAAB6uX5AAAA \
  --header 'authorization: Bearer EwAAA+l...59wYC' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\n   "ParentFolderId": "AQMkADAwATNiZmYAZC0wNTUAZi1mNjU1AC0wMAItMDAKAC4AAAM_h46UdfWbRLlZWFB3Ty59AQAxLPcv2HzQSobPUzuXLWg7AAACAQ4AAAA=",\n "GivenName": "John"\n}'

(我当然删除了不记名令牌的详细信息)

我想要该功能,以便高效地移动联系人 and/or 联系人文件夹。 copying/deleting 的替代方案效率不高,也不会保留事物的 ID "moved",因为它们将不得不重新创建。

您无法通过 PATCH'ing 更改 Outlook 世界中任何实体的 ParentFolderId。 属性 由服务器管理。它改变的唯一方法是移动有问题的项目。遗憾的是,API 中没有为联系人或联系人文件夹定义的 Move 操作。