Невозможно получить OpenTypeExtensionProperty для события с помощью Graph API

#microsoft-graph-api #microsoft-graph-calendar

#microsoft-graph-api #microsoft-график-календарь

Вопрос:

Для одного из наших приложений я пытаюсь получить расширения для события, используя следующий код на C#:

 var result = graphServiceClient.User[userid].Calendar.Events[eventid].Extensions.Request().GetAsync().Resu<
 

Тем не менее, я получаю следующее исключение:

Код: Сообщение ErrorInvalidRequest: запрос OData не поддерживается. Запрос клиента: f7a44c2f-ca79-4f79-9726-2cdc98d87e00

Я нашел приведенный выше код в нескольких вопросах, опубликованных на stackoverflow.

Нам нужно любым способом добавить и получить расширения opentype. Может кто-нибудь, пожалуйста, помочь?

Ответ №1:

Сначала я использовал Microsoft Graph Explorer для создания события и добавления к нему opentypeextension:

введите описание изображения здесь

Затем получите opentypeextensions для вышеупомянутого события, используя его идентификатор:

введите описание изображения здесь

Код будет выглядеть следующим образом:

 GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var extension = await graphClient.Me.Events["'AAMkAGRlNWYmM5YjIzNTRhMwBGAAAAAAA-AAA='"].Extensions["Com.Contoso.Referral"]
    .Request()
    .GetAsync(); 

Ответ №2:

Для меня это сработало, однако в моем случае я хотел проверить все события Outlook на предмет конкретного расширения, и в случае, если расширение отсутствует в каком-либо из событий, я получал следующую ошибку:

Код: Сообщение ErrorItemNotFound: указанный объект не был найден в хранилище. Запрос клиента: a65d0d31-123b-4834-9bec-8d471d22b6e0

Чтобы решить вышеизложенное, при повторении всех событий я добавил код для извлечения расширения в блок try catch и добавил следующий код в блок catch, чтобы продолжить цикл в случае, если у нас есть вышеупомянутое исключение

 if (ex.InnerException.GetType() == typeof(ServiceException) amp;amp;
                    ex.InnerException.Message.Contains("Code: ErrorItemNotFound"))
                    continue;
 

В любом случае, теперь моя проблема решена. Спасибо за помощь

Комментарии:

1. Рад, что вышесказанное помогло..!!