Цель, которую я преследую, заключается в том, что я хотел бы получить электронное письмо из Outlook 365 без какого-либо вмешательства человека. Поэтому я пытаюсь использовать MS Graph REST API и Java. Чтобы получить токен доступа, я использую:
resource=https://graph.microsoft.com
response = Unirest.post(
String.format("https://login.microsoftonline.com/%s/oauth2/token",
auth.getProperty("tenant_id")))
.header("Content-Type", "application/x-www-form-urlencoded")
.field("grant_type", "client_credentials")
.field("resource", auth.getProperty("resource"))
.field("client_id", auth.getProperty("app_id"))
.field("client_secret", auth.getProperty("app_secret"))
.asString();
, который возвращает строку, которая разбирается в JSON и передается в:
jsonNode = Unirest.get(
String.format("https://graph.microsoft.com/v1.0/users/%s/mailFolders",
prop.getProperty("user_email")))
.header("Accept", "application/json")
.header("Authorization", json.get("token_type") + " " + json.get("access_token"))
.asString();
Я получаю сообщение об ошибке: «Токен не содержит разрешений, или разрешения не могут быть поняты».
У меня нет доступа администратора к Azure AD, но у меня есть доступ к папке входящих сообщений user_mail
, к которым я могу получить доступ через https://outlook.office365.com/mail/inbox
.
Я чувствую, что ушел по касательной, но не уверен, что еще я могу сделать.
Кто-нибудь знаете, что нужно сделать, чтобы я мог получать электронные письма через MS-Graph API? Или лучший способ сделать это?
Цените всю помощь, которую я могу получить.