Мы столкнулись с серьезной ошибкой в 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"
}
Первый контакт был создан с помощью API бета-версии Outlook.
Второй контакт был создан в Outlook Web App в браузере Chrome.
Оба идентификатора одинаковы.
Несмотря на то, что контакт был создан с помощью API бета-версии Outlook, все еще дублирование уникального идентификатора является серьезной проблемой.
Мы не можем получить первый контакт по идентификатору с помощью Microsoft Graph API.
Извлечение контакта с использованием идентификатора в Microsoft Graph 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>
В нашей учетной записи много таких контактов с дублирующимися идентификаторами.