#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. Рад, что вышесказанное помогло..!!