Как получить код авторизации в MS Graph API 6.12

Я использую microsoft-graph:6.12.0 в своем Java-приложении для Android. Я пытаюсь найти файлы на onedrive.

Как я могу получить authorizsationCode за AuthorizationCodeCredentialBuilder.

final AuthorizationCodeCredential credential = new AuthorizationCodeCredentialBuilder()
                .clientId(CLIENT_ID).tenantId(TENANT_ID).clientSecret(CLIENT_SECRET_VALUE)
                .authorizationCode(authorizationCode).redirectUrl(REDIRECT_URL).build();

Спасибо ГГК

Чтобы получить код авторизации, вам необходимо запустить запрос авторизации в браузере, который выдает code в адресной строке после входа в систему. См. это stackoverflow.com/questions/77431323/…

Sridevi 05.06.2024 11:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Первоначально зарегистрируйте одно приложение Entra ID с URI перенаправления, как показано ниже:

Обязательно предоставьте Files.Read разрешение типа «Делегированный» в этом приложении:

Чтобы получить код авторизации, вам необходимо запустить в браузере следующий запрос, который просит пользователя войти в систему следующим образом:

https://login.microsoftonline.com/tenantId/oauth2/v2.0/authorize? 
client_id=appId
&redirect_uri=https://jwt.ms
&response_type=code  
&response_mode=query  
&scope=Files.Read
&state=12345

После успешной аутентификации вы получите код авторизации в адресной строке следующим образом:

В моем случае я использовал приведенный ниже пример Java-кода, чтобы получить диск пользователя, включив такое значение authorizationCode:

Главный.java:

import com.azure.identity.AuthorizationCodeCredential;
import com.azure.identity.AuthorizationCodeCredentialBuilder;
import com.microsoft.graph.models.Drive;
import com.microsoft.graph.serviceclient.GraphServiceClient;

public class Main {
    public static void main(String[] args) {
        final String clientId = "appId";
        final String tenantId = "tenantId"; 
        final String clientSecret = "secret";
        final String authorizationCode = "code_value";
        final String redirectUrl = "https://jwt.ms";
        final String[] scopes = new String[] { "Files.Read" };

        final AuthorizationCodeCredential credential = new AuthorizationCodeCredentialBuilder()
                .clientId(clientId).tenantId(tenantId).clientSecret(clientSecret)
                .authorizationCode(authorizationCode).redirectUrl(redirectUrl).build();

        final GraphServiceClient graphClient = new GraphServiceClient(credential, scopes);
        Drive response = graphClient.me().drive().get();
        System.out.println("Drive ID: "+ response.getId());
    }
}

Ответ:

Ссылка:

Выберите поставщика аутентификации Microsoft Graph — Microsoft Graph

Другие вопросы по теме

Есть ли способ использовать LazyRow, чтобы установить высоту каждого дочернего Composable так, чтобы она соответствовала высоте самого высокого дочернего Composable?
Реализация Double StickyHeader в компоновке Jetpack
Невозможно использовать функции Kotlin 2.0 после обновления
Почему операции модели представления не работают в модификаторе .clickable в текущей стабильной версии Android Jetpack Compose?
Android-приложение .NET MAUI не создается из-за ошибки Java, связанной с зависимостями AndroidX
Перенаправление flutter_appauth после входа в систему не работает должным образом на Android
Запуск приложения Android через действие с фильтром намерений приводит к изменению значка и названию приложения как «Сервисы Google Play»
Kotlin 2 Не удалось скомпилировать демон Kotlin
Приложение Qt Quick для Android отображает пустой экран, если оно запускается более 1 раза
Как я могу поставить пунктирный разделитель между двумя контейнерами во флаттере, не используя какой-либо внешний пакет