Outlook 中联系人的重复唯一标识符 (Id)

Duplicate unique identifier(Id) for contacts in Outlook

我们在 Microsoft Outlook 中遇到了一个严重的错误。 两个联系人具有相同的唯一标识符。 这两个联系人都存在于 outlook 中的同一文件夹中。

{
"@odata.etag":"W/"EQAAABYAAAC8DOd9nfEKQIKH9B+wE/6tAAMS+rHg"",
"id":"AAMkAGZmZDhjMmMwLWM5YWYtNGQ4My1iNjY3LTcyMmY1ZDJjMGQyYQBGAAAAAAA1hjIPSspAQpY74RqZjH0hBwC8DOd9nfEKQIKH9B_wE-6tAAMSuJSLAAC8DOd9nfEKQIKH9B_wE-6tAAMSuJroAAA=",
"displayName":"mac mac"
}
....
{
"@odata.etag":"W/"EQAAABYAAAC8DOd9nfEKQIKH9B+wE/6tAAMS+onF"",
"id":"AAMkAGZmZDhjMmMwLWM5YWYtNGQ4My1iNjY3LTcyMmY1ZDJjMGQyYQBGAAAAAAA1hjIPSspAQpY74RqZjH0hBwC8DOd9nfEKQIKH9B_wE-6tAAMSuJSLAAC8DOd9nfEKQIKH9B_wE-6tAAMSuJrOAAA=",
"displayName":"smaran13"
}

第一个联系人是使用 Outlook beta 批处理 API 创建的。

第二个联系人是在 Chrome 浏览器的 Outlook Web App 中创建的。

两个id相同

Though contact was created using Outlook beta API, still duplicate unique identifier is a severe issue.

我们无法使用 Microsoft graph API.

按 ID 获取第一个联系人

使用 Microsoft graph 中的 id 获取联系人 API 仅给出第二个联系人。

获取第一个联系人的唯一方法是获取所有联系人

这是代码示例

创建联系人API

POST /api/beta/$batch
Host: outlook.office.com
Authorization: Bearer <access_token>
Content-Type: multipart/mixed; boundary=batch_ZohoGadgets
Accept: multipart/mixed
Prefer: odata.continue-on-error

--batch_881a83c8-4fdb-11e9-8647-d663bd873d93
Content-Type: application/http 
Content-Transfer-Encoding: binary

POST /api/beta/me/contacts HTTP/1.1
Content-Type: application/json;odata=verbose

{"Surname":"Sample Name"}

--batch_881a83c8-4fdb-11e9-8647-d663bd873d93

获取所有联系人API

GET /v1.0/me/contactfolders/{Id}/contacts?$select=id,displayName&$top=999
Host: graph.microsoft.com
Authorization: Bearer <access_token>

我们的帐户中有许多具有重复 ID 的此类联系人。

不重复。这两个 id 在倒数第四个元素上有所不同 - "o" vs "O".