outlook - Outlook 中联系人的重复唯一标识符 (Id)
问题描述
我们在 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都是一样的。
尽管联系人是使用 Outlook beta API 创建的,但重复的唯一标识符仍然是一个严重的问题。
我们无法使用 Microsoft 图形 API 按 id 获取第一个联系人。
在 Microsoft graph API 中使用 id 获取联系人只会提供第二个联系人。
获得第一个联系人的唯一方法是获得所有联系人
这是代码示例
创建联系人 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”与“O”。
推荐阅读
- symfony4 - 如何在 CoreShop 多个商店中向客户登录检查添加自定义验证逻辑
- puppet - 正整数的木偶数组
- javascript - 将带有 connectNative 的变量传递到 Javascript 文件(Chrome 扩展程序)
- angular - Angular - 如何自动触发 mat-error
- node.js - 如何使用 firebase verifyToken() 获取用户名?
- windows - Samba 共享默认为来宾访问
- python - 如何使用python仅打印child.tag并删除xml中的pretext
- php - 获取变量内容和剥离变量以仅返回数字的函数
- wordpress - 无法导入使用 Vue WordPress Starter 构建的主题
- python - 将 Excel 中的 =LARGE 和 =SMALL 函数复制到 Python