Есть ли способ однозначно идентифицировать адреса электронной почты, телефоны и т. Д. С помощью Microsoft Graph API? - PullRequest
0 голосов
/ 31 августа 2018

Попытка настроить двустороннюю синхронизацию с контактами Графика. Когда я получаю ответ от Graph для определенного контакта, я не могу найти способ уникальной идентификации атрибутов телефона / электронной почты.

В моем случае каждый адрес электронной почты и номер телефона являются отдельными объектами с уникальным идентификатором, идентифицирующим их. Это решает для крайнего случая наличия нескольких адресов или номеров одного типа (например, дома, на работе, в школе, на мобильном телефоне).

В идеальном мире я хотел бы иметь возможность отправлять метаданные вместе с каждым объектом телефона / электронной почты, который уникально идентифицирует их при создании в Graph. Таким образом, когда я настраиваю подписку или даже запрашиваю контакт, я могу напрямую сопоставить возвращенные объекты контактов по телефону / электронной почте с нашим конкретным телефоном / электронной почтой.

Возможно ли это? Я знаю, что у Google есть идентификаторы, которые решают эту проблему.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Контакты Outlook структурированы немного иначе, чем Контакты Google. Вместо того чтобы иметь одно свойство gd:phoneNumber с разными значениями rel, Outlook использует разные свойства номера телефона.

Также важно помнить, что некоторые свойства телефонных номеров являются коллекциями, а не отдельными значениями (т. Е. homePhones). Эти коллекции упорядочены, поэтому эти коллекции можно легко сопоставить с пользовательским интерфейсом Outlook. Например, homePhones[0] содержит значение «Домашний телефон», а homePhones[1] содержит «Домашний телефон 2».

С точки зрения отображения 1: 1:

Наконец, по умолчанию Microsoft Graph возвращает только ограниченный набор телефонных номеров. По моему опыту, набор, возвращаемый Graph, почти всегда достаточен, но, безусловно, есть некоторые крайние случаи (например, сектор здравоохранения все еще использует пейджеры).

Вы можете получить доступ к этим дополнительным телефонным номерам, используя Расширенные свойства . Это делается путем конкретного запроса конкретного свойства с использованием имени тега MAPI.

Например, если вам нужно получить свойство Pager, вы можете запросить идентификатор MAPI 0x3A21 как расширенное свойство:

/v1.0/me/contacts?$expand=singleValueExtendedProperties($filter=id eq 'String 0x3A21') 

Полный список свойств MAPI можно найти здесь .

0 голосов
/ 31 августа 2018
"homePhones": [],
"mobilePhone": "124124124124",
"businessPhones": [
     "+86 (510) 12114142"
],
"spouseName": null,
"personalNotes": "",
"children": [],
"emailAddresses": [
   {
   "name": "Charles Test(test@microsoft.com)",
   "address": "Test.Test@microsoft.com"
   }
],
"homeAddress": {},
"businessAddress": {
   "city": "Wuxi"
},
"otherAddress": {} 

Как вы знаете, номер телефона не уникален, пользователь может использовать один и тот же номер телефона, поэтому его нельзя использовать в качестве уникального идентификатора во всех API аутентификации MS, если только номер телефона не является идентификатором пользователя. Так что это невозможно для вашего совершенного мира.

По той же причине пользователь может использовать одну и ту же адресную ссылку, поэтому она не может использоваться как уникальная идентификация во всех API аутентификации MS. Так что это не возможно и для вашего совершенного мира.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...