С помощью Outlook API я могу тянуть события календаря. Далее я пытаюсь сделать следующее: если у события есть электронное письмо с участником, извлеките оставшиеся контактные данные этого участника из REST API контактов Outlook. Я считаю, что у меня есть запрос прямо с ?search="[email protected]"
в URL, но я получаю обратно следующее, когда я отображаю ответ от cURL:
string '{"error":{"code":"ErrorAccessDenied","message":"Access is denied. Check credentials and try again."}}' (length=101)
Кажется, что мои учетные данные достаточно хороши, чтобы получать события календаря, но как-то недействительны секунду спустя, пытаясь получить контакты. Что мне не хватает?
Какие разрешения запрашивает ваше приложение при аутентификации? Предполагая, что вы используете модель приложения v2 для аутентификации, это то, что передается в scope
Параметр в URL запроса авторизации:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=<SOME GUID>
&redirect_uri=https%3A%2F%2Fcid.azurewebsites.net&response_type=code
&scope=openid+https%3A%2F%2Foutlook.office.com%2Fmail.read
Для доступа к контактам вам необходимо иметь https://outlook.office.com/contacts.read
или же https://outlook.office.com/contacts.readwrite
В зависимости от того, если вам нужен доступ для записи.
Еще один способ поиска:
https://outlook.office365.com/api/v2.0/me/MailFolders/Inbox/messages?$ Поиск = «из: [email protected]»&$ = Выберите тему, отправителя, ReceivedDateTime&$ Топ = 500