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"
        }
    ]
}
Другие вопросы по тегам