Используя Postman, я пытаюсь получить последние электронные письма, полученные в моем почтовом ящике Outlook.
Для этого я объявил свое приложение на портале приложений. Затем я могу выполнить запрос GET, чтобы получить токен из конечной точки:
https://login.microsoftonline.com/[tenantId]/oauth2/token
Затем я пытаюсь использовать полученный токен для выполнения запроса на
https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages
Проблема в том, что API возвращает:
{
"code": "NoPermissionsInAccessToken",
"message": "The token contains no permissions, or permissions can not be understood.",
}
В разрешениях моего приложения я разрешил каждое действие, связанное с чтением электронной почты. Я что-то пропустил?





Похоже, вы забыли «Предоставить разрешение» (это случается с лучшими из нас: P).
Предоставьте разрешение для вашего арендатора. Самый простой способ — через https://portal.azure.com -> Azure AD -> Регистрация приложений -> Ваше приложение -> Настройки -> Требуемые разрешения -> Кнопка «Предоставить доступ».)
Связано с этим отвечать
Это также помогает взять токен и вставить его в https://jwt.ms, который покажет вам все данные в токене (а также должен показать утверждения о предоставленных разрешениях).
На самом деле мне не хватало одобрения администратора для областей (read.mail в моем случае). При использовании только для приложений вам необходимо получить одобрение администратора. Для этого администратор должен использовать этот URL:
https://login.microsoftonline.com/common/adminconsent?client_id=[your_client_id]&state=[random_string]&redirect_uri=http://localhost/
Администратору будет предложено утвердить разрешения.
Исключением является API для поиска времени собраний или отправки почты, который применяется только к почтовые ящики Office 365 (в Azure AD), а не к учетные записи Майкрософт.
Для простоты ссылок в оставшейся части этой статьи используется Outlook.com для включения этих доменов учетных записей Майкрософт.
Добро пожаловать в Stack Overflow! Я настоятельно рекомендую прочитать «Как задать хороший вопрос?», чтобы получить несколько советов по началу работы. В своем вопросе вы упускаете много ключевых деталей: для каких именно областей вы зарегистрировались? Как именно вы позвонили
/token? Вы получили «Согласие администратора» для этого приложения?