Получение событий из календаря с использованием C # и Microsoft Graph SDK - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь разработать консольное приложение для отображения, удаления и добавления событий в календарь конкретного пользователя.Я разрабатываю бизнес-процесс.Я начинаю с перечисления событий.

Calendar cal =
    client
    .Users["UserName@CompanyName.com"]
    .Calendars["AAMkAGIzZDM4O...."]
    .Request()
    .GetAsync()
    .Result;

Я получаю верный календарь, но коллекция событий пуста.В календаре 13 событий.У меня есть права на чтение / запись календаря.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Дэн, спасибо за пост.Я понял свою ошибку после прочтения вашего поста.Вот код, который работает:

            string userEmail = "UserName@CompanyName.com";
            string calId = "AAMkAGIzZDM4OWI0LWN...….";

            ICalendarEventsCollectionPage events = client.Users[$"{userEmail}"]
                .Calendars[$"{calId}"]
                .Events.Request().GetAsync().Result;
0 голосов
/ 08 октября 2018

У меня нет среды для тестирования c # Graph SDK, но я подозреваю, что базовый запрос не запрашивает Graph для событий календаря, поэтому поле имеет значение null.

Использование Graph explorer (https://developer.microsoft.com/en-us/graph/graph-explorer#), мы можем попробовать эквивалентный запрос и отметить, что возвращаются только метаданные о календарях.

GET https://graph.microsoft.com/v1.0/me/calendars

enter image description here

В обозревателе графиков есть несколько примеров запросов к календарю. По умолчанию они могут не отображаться, поэтому нажмите ссылку «Показать больше образцов».

enter image description here

Пример запроса all events in my calendar, вероятно, то, что вы ищете. Запрос:

GET https://graph.microsoft.com/v1.0/me/events?$select=subject,body,bodyPreview,organizer,attendees,start,end,location

(или / calendars / {calendar-id} / events, если вы хотите событиядля определенного календаря)

Следующим шагом является преобразование этого запроса API REST в синтаксис SDK для использования в вашем приложении.

С этого образца , отправной точкой является:

IUserEventsCollectionPage events = await graphClient.Me.Events.Request().GetAsync();

Помимо запросов к событиям, вы также можете изучить запросов ккалендарь пользователя , позволяющий указать дату начала и окончания.

...