В последнее время я изучал MS Graph API и столкнулся с проблемой. Мой пример использования - я хочу прочитать почту определенного почтового ящика и отправить почту для этого почтового ящика. Почтовый ящик не связан с пользователем и используется в качестве учетной записи службы для электронной почты.
Я нашел 2 возможных потока для входа в этот почтовый ящик. Поток, прошедший проверку подлинности пользователя, и поток приложения (и согласованный с администратором). Для приложения я хочу читать электронные письма в фоновом режиме в приложении NodeJS, без взаимодействия с пользователем.
Когда я смотрю на согласованный пользователем поток, я обнаруживаю, что для того, чтобы он работал, пользователь ДОЛЖЕН Войдите, по крайней мере, один раз, вручную, и согласитесь на некоторые вещи, которые я хочу сделать. Я нашел эту страницу о том, как это работает, и заставил ее работать в моем приложении NodeJS. Проблема заключается в том, что при использовании этого потока я должен войти в систему ПО РУКАМ как минимум один раз после запуска моего приложения NodeJS. После этого я могу использовать токен refre sh, чтобы обновить sh токен доступа, но я не хочу выполнять вход вручную.
Второй вариант, наиболее подходящий для моего приложения NodeJS это поток приложения. Я нашел этот учебник о том, как это сделать, и заставил все это работать. Я получаю токен, и этот токен дает мне доступ к коробке через Graph API.
Но используя поток приложения, я обнаружил, что мне нужно иметь роли (т. Е.): «User.ReadAll, Mail.Read, Mail.Send». Это дает моему приложению права на чтение и отправку почты ДЛЯ ВСЕХ пользователей в учетной записи. Что СЛИШКОМ слишком много для моей ситуации.
Теперь мой вопрос; Могу ли я использовать MS Graph с потоком аутентификации приложения, но без доступа ко всем почтовым ящикам пользователей, только к моей конкретной c учетной записи, которую я хочу прочитать?
Заранее спасибо, Каспар