Разработчики, мне нужно решение для чтения почты Outlook с помощью Springboot с помощью client_secret. Я пробовал использовать несколько процессов, но безуспешно. Во время отладки у меня есть токен доступа, но токен обновления, размер токена идентификатора был равен 0. Это вызывает у меня проблему ниже:
Сообщение об ошибке: Доступ запрещен. Проверьте учетные данные и повторите попытку.
GET https://graph.microsoft.com/v1.0/users/ ... ges?%24top =5
SdkVersion: граф-java/v4.1.0
403: запрещено
[...]
[ Некоторая информация была сокращена для краткости. Чтобы получить более подробную информацию, включите ведение журнала отладки]
public static void initializeGraph() throws MalformedURLException, ExecutionException, InterruptedException {
Set SCOPE = new HashSet();
SCOPE.add("https://graph.microsoft.com/.default");
SCOPE.add("offline_access");
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication cca = ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
IAuthenticationResult result;
ITokenCache tokenCache = cca.tokenCache();
try {
SilentParameters silentParameters = SilentParameters
.builder(SCOPE)
.build();
// Try to acquire token silently
result = cca.acquireTokenSilently(silentParameters).get();
System.out.println(result);
} catch (Exception ex) {
if (ex.getCause() instanceof MsalException) {
ClientCredentialParameters parameters = ClientCredentialParameters
.builder(SCOPE)
.build();
// Try to acquire a token
IAuthenticationResult accessToken = cca.acquireToken(parameters).get();
System.out.println("Token retrieved from accessToken: " + accessToken.accessToken());
System.out.println("Token retrieved from idToken: " + accessToken.idToken());
System.out.println("Token retrieved from tenantProfile: " + accessToken.tenantProfile());
System.out.println("Token retrieved from expiresOnDate: " + accessToken.expiresOnDate());
TokenCredential tokenCredential = new TokenCredential() {
@Override
public Mono getToken(TokenRequestContext tokenRequestContext) {
String accessToken = accessToken.accessToken();
Instant instant = accessToken.expiresOnDate().toInstant();
com.azure.core.credential.AccessToken azureToken = new
com.azure.core.credential.AccessToken(accessToken,
instant.atOffset(ZoneId.systemDefault().getRules().getOffset(instant)));
return Mono.just(azureToken);
}
};
IAuthenticationProvider authProvider = new TokenCredentialAuthProvider(tokenCredential);
userClient = GraphServiceClient
.builder()
.authenticationProvider(authProvider)
.buildClient();
} else {
throw ex;
}
}
}
public static MessageCollectionPage getInbox() throws Exception {
initializeGraphForAppOnlyAuth();
System.out.println(userClient);
if (userClient == null) {
throw new Exception("Graph has not been initialized for user auth");
}
return userClient.users("di.a@help.com")
.mailFolders("inbox")
.messages()
.buildRequest()
.top(5)
.get();
}
public static MessageCollectionPage getInbox() throws Exception {
initializeGraphForAppOnlyAuth();
System.out.println(userClient);
if (userClient == null) {
throw new Exception("Graph has not been initialized for user auth");
}
return userClient.users("di.a@help.com")
.mailFolders("inbox")
.messages()
.buildRequest()
.top(5)
.get();
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... look-mails
API Microsoft Graph с Springboot для чтения почты Outlook ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1715833776
Anonymous
Разработчики, мне нужно решение для чтения почты Outlook с помощью Springboot с помощью client_secret. Я пробовал использовать несколько процессов, но безуспешно. Во время отладки у меня есть токен доступа, но токен обновления, размер токена идентификатора был равен 0. Это вызывает у меня проблему ниже:
Сообщение об ошибке: Доступ запрещен. Проверьте учетные данные и повторите попытку.
GET https://graph.microsoft.com/v1.0/users/di.a@help.com/mailFolders/inbox/messages?%24top =5
SdkVersion: граф-java/v4.1.0
403: запрещено
[...]
[ Некоторая информация была сокращена для краткости. Чтобы получить более подробную информацию, включите ведение журнала отладки]
public static void initializeGraph() throws MalformedURLException, ExecutionException, InterruptedException {
Set SCOPE = new HashSet();
SCOPE.add("https://graph.microsoft.com/.default");
SCOPE.add("offline_access");
IClientCredential credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);
ConfidentialClientApplication cca = ConfidentialClientApplication
.builder(CLIENT_ID, credential)
.authority(AUTHORITY)
.build();
IAuthenticationResult result;
ITokenCache tokenCache = cca.tokenCache();
try {
SilentParameters silentParameters = SilentParameters
.builder(SCOPE)
.build();
// Try to acquire token silently
result = cca.acquireTokenSilently(silentParameters).get();
System.out.println(result);
} catch (Exception ex) {
if (ex.getCause() instanceof MsalException) {
ClientCredentialParameters parameters = ClientCredentialParameters
.builder(SCOPE)
.build();
// Try to acquire a token
IAuthenticationResult accessToken = cca.acquireToken(parameters).get();
System.out.println("Token retrieved from accessToken: " + accessToken.accessToken());
System.out.println("Token retrieved from idToken: " + accessToken.idToken());
System.out.println("Token retrieved from tenantProfile: " + accessToken.tenantProfile());
System.out.println("Token retrieved from expiresOnDate: " + accessToken.expiresOnDate());
TokenCredential tokenCredential = new TokenCredential() {
@Override
public Mono getToken(TokenRequestContext tokenRequestContext) {
String accessToken = accessToken.accessToken();
Instant instant = accessToken.expiresOnDate().toInstant();
com.azure.core.credential.AccessToken azureToken = new
com.azure.core.credential.AccessToken(accessToken,
instant.atOffset(ZoneId.systemDefault().getRules().getOffset(instant)));
return Mono.just(azureToken);
}
};
IAuthenticationProvider authProvider = new TokenCredentialAuthProvider(tokenCredential);
userClient = GraphServiceClient
.builder()
.authenticationProvider(authProvider)
.buildClient();
} else {
throw ex;
}
}
}
public static MessageCollectionPage getInbox() throws Exception {
initializeGraphForAppOnlyAuth();
System.out.println(userClient);
if (userClient == null) {
throw new Exception("Graph has not been initialized for user auth");
}
return userClient.users("di.a@help.com")
.mailFolders("inbox")
.messages()
.buildRequest()
.top(5)
.get();
}
public static MessageCollectionPage getInbox() throws Exception {
initializeGraphForAppOnlyAuth();
System.out.println(userClient);
if (userClient == null) {
throw new Exception("Graph has not been initialized for user auth");
}
return userClient.users("di.a@help.com")
.mailFolders("inbox")
.messages()
.buildRequest()
.top(5)
.get();
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78487570/microsoft-graph-api-with-springboot-to-read-outlook-mails[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия