outlook.com rest api неправильный электронный адрес организатора
Когда пользователь создал событие в общем календаре outlook.com, REST API сообщает, что владелец календаря является организатором.
У меня есть один календарь на Outlook.com, и я синхронизирую все события календаря на своем сервере с подпиской на календарь. Я получаю уведомления, когда что-то происходит, и в уведомлении есть URL, который я могу использовать для получения объекта этого вновь созданного события.
Теперь у меня есть другой пользователь на outlook.com, и я поделился с ним своим календарем. Когда он что-то делает в этом общем календаре, я получаю уведомления, но не получаю никакой информации о том, кто создал новое событие.
Организатор всегда мой пользователь и по какой-то причине в имени объекта события все в порядке, но адрес электронной почты это что-то вроде outlook-[nonsense]@outlook.com
(это не мой адрес электронной почты). Мой реальный адрес электронной почты больше похож на lehtu@outlook.com
,
Смотрите это изображение для уточнения:
Организатор части ответа:
Organizer:
{ EmailAddress:
{ Name: 'Encode Testing',
Address: 'outlook_2FD8F7EE77CEC8B8@outlook.com' } },
Аутентификация приложения производится только моим пользователем (на рисунке это имя "Тестирование").
Вот мои учетные данные:
this.scopes = [
'openid',
'offline_access',
'https://outlook.office.com/calendars.readwrite'
];
Главное, чтобы в моей учетной записи было больше календарей, и я поделюсь ими с другими. Но я должен получить информацию в моем приложении о том, кто создает события.
Есть идеи?
1 ответ
Ожидается, что организатор событий в общем календаре всегда является владельцем указанного календаря. По сути, Testing2 создал событие от имени Testing, но Testing2 не становится организатором. Необычный адрес электронной почты, который вы видите для тестирования, - это его базовый адрес электронной почты outlook.com, который добавляется, поскольку вы используете собственный домен.
К сожалению, сегодня не похоже, что API напрямую предоставляет информацию о том, кто на самом деле создал событие. Это, вероятно, хорошая возможность предложить на UserVoice. Однако вы можете получить к нему косвенный доступ.
Всякий раз, когда API напрямую не предоставляет свойство, вы можете посмотреть на базовые свойства, предоставляемые сервером Exchange. Я обычно смотрю их в документе MS-OXPROPS. Я нашел PidTagCreatorName, который, похоже, может помочь получить данные, которые вы ищете.
Обычно вы можете получить доступ к этим базовым свойствам, развернув $expand
) SingleValueExtendedProperties
Коллекция на предметы. Так что, если вы делаете GET на следующее:
https://outlook.office.com/api/v2.0/me/events?
$expand=SingleValueExtendedProperties($filter=PropertyId eq 'String 0x3FF8')
Вы увидите возвращенные результаты, которые выглядят примерно так:
{
...
All the normal props you usually see
...
"SingleValueExtendedProperties": [
{
"PropertyId": "String 0x3ff8",
"Value": "Jason Johnston"
}
]
}