Получите информацию о занятости без разрешения полного разрешения на чтение - PullRequest
2 голосов
/ 14 марта 2019

Я ищу доступ к информации о занятости нескольких пользователей Microsoft Outlook (в одном клиенте), чтобы я мог запланировать для них некоторые события.

Для этого у меня есть несколько возможностей:

Моя проблема заключается в том, что все они требуют разрешения Calendars.Read или Calendars.Read.Shared. Я протестировал решение 2 (потому что я предпочел разрешения приложений), но при перечислении событий я получаю ВСЕ сведения об этих событиях и потенциально могу также видеть вложение, которое является слишком широким разрешением.

Таким образом, мой вопрос заключается в следующем: как найти свободное время между несколькими пользователями, а затем отправить им приглашение в календаре Microsoft Outlook, не требуя предоставления слишком широких разрешений?

Дополнительный вопрос: в настоящее время я тестирую выборку общих событий с использованием Calendars.Read.Shared. Мой первый пользователь прошел через процесс OAuth и дал разрешение на мое приложение. Другой пользователь делится своим календарем (только для пользователей) с этим пользователем. Однако при попытке извлечь события (конечная точка: https://graph.microsoft.com/v1.0/users/{user_B_Graph_ID}/events я получаю ошибку "403 - DelegatedCalendarAccessDenied". Кто-нибудь сталкивался с таким?

Вот файл документации для того, что я пытаюсь сделать.

1 Ответ

1 голос
/ 14 марта 2019

Области разрешения приложений чрезвычайно широки по дизайну, это действительно сценарий "все или ничего". Если вы используете область Calendar.Read Application, то ваше приложение будет иметь доступ только для чтения к каждому календарю в клиенте. Невозможно ограничить, какие календари или какие данные он может получить доступ.

Конечная точка /findMeetingTimes не поддерживает область приложения (она использует делегированную область Calendars.Read.Shared), и, вероятно, она ближе всего к тому, что вы ищете.

Рабочий процесс /findMeetingTimes немного более громоздок, чем /getSchedule, но, поскольку /getSchedule все еще находится в бета-версии, его не следует использовать в производственном приложении. Вызывать зависимость от любых /beta API небезопасно, они могут и , скорее всего, время от времени будут давать сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...