Получить опубликованный URL-адрес календаря API Microsoft Graph

У меня есть требование, когда мне нужно получить доступ к общедоступному URL-адресу календаря (также я хочу поделиться календарем с помощью API) с помощью microsoft graph api. Но похоже, что он недоступен с использованием GraphServiceClient. Я пытаюсь достичь

        var cal = await graphClient...<anything>....Calendar.Request(options).GetAsync();
        if(cal.CanShare.HasValue && cal.CanShare.Value)
        {
            // get the published URL of the calendar here
        }

person Manu Mohan Thekkedath    schedule 11.04.2019    source источник
comment
вы делаете graphClient.Me как это публично доступно? этот ресурс относится к вашей учетной записи   -  person Aarif    schedule 11.04.2019
comment
@Aarif Да, даже если это относится к моей учетной записи, опубликованный URL-адрес календаря доступен из любого места и не реализован с помощью graphclient. Я могу получить доступ к календарю любого пользователя, используя идентификатор пользователя.   -  person Manu Mohan Thekkedath    schedule 11.04.2019


Ответы (1)


Кажется, центральным моментом здесь является то, что вы ожидаете, что / Me / Calendars будет включать общие календари. Это не. Чтобы получить доступ к чужому календарю, к которому был предоставлен общий доступ, вы должны получить доступ через /Users/<id>/Calendars/ URL.

Так, например, если [email protected] входит в систему и [email protected] предоставил ему доступ к своему календарю, тогда:

  1. /Me/Calendars будет отображать ТОЛЬКО календари в почтовом ящике User1.
  2. /Users/[email protected]/Calendars будет отображать календари, которыми пользователь2 поделился с пользователем1

Надеюсь, это поможет.

person Mohit Verma    schedule 25.04.2019
comment
Вопрос в том, чтобы опубликовать ссылку на Календарь. Это может быть и мой календарь. Код выше является просто репрезентативным - person Manu Mohan Thekkedath; 26.04.2019