Как заменить класс AuthorizationCodeInstalledApp на Android (Google API)?
Пытаюсь запустить пример кода из Google Quickstart для Java на Android - эмуляторе, но код падает на строчке
return new AuthorizationCodeInstalledApp(flow, receier).authorize("user"); |
return new AuthorizationCodeInstalledApp(flow, receier).authorize("user");
Выяснилось, что Android не поддерживает данный класс, поэтому нужно вручную словить URL адрес для авторизации, открыть его в браузере и после результат запихнуть в Credential объект. Знаком я с Java поверхностно, поэтому плохо представляю, как это можно реализовать.
Подскажите, пожалуйста, как подобное можно сделать? Может, есть какие-нибудь классы аналоги для подобного рода задач?
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для замены класса AuthorizationCodeInstalledApp на Android (Google API), вам нужно использовать класс GoogleAuthorizationCodeTokenRequest. Этот класс предоставляет возможность получения токена авторизации для доступа к Google API на устройствах Android.
Ниже приведен пример кода на языке программирования Java, который демонстрирует использование класса GoogleAuthorizationCodeTokenRequest для получения токена авторизации:
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow; import com.google.api.client.auth.oauth2.TokenResponse; import com.google.api.client.auth.oauth2.AuthorizationCodeTokenRequest; import com.google.api.client.auth.oauth2.AuthorizationCodeTokenResponse; import com.google.api.client.auth.oauth2.AuthorizationCodeRefreshTokenRequest; import com.google.api.client.auth.oauth2.AuthorizationCodeRefreshTokenResponse; // Создаем объект AuthorizationCodeFlow AuthorizationCodeFlow flow = new AuthorizationCodeFlow.Builder( BearerToken.authorizationHeaderAccessMethod(), new NetHttpTransport(), new JacksonFactory(), new GenericUrl("https://accounts.google.com/o/oauth2/token"), new ClientParametersAuthentication(clientId, clientSecret), clientId, "https://www.googleapis.com/auth/calendar" ).build(); // Создаем объект AuthorizationCodeTokenRequest AuthorizationCodeTokenRequest tokenRequest = flow.newTokenRequest(authorizationCode); tokenRequest.setRedirectUri(redirectUri); // Получаем токен авторизации AuthorizationCodeTokenResponse tokenResponse = tokenRequest.execute(); // Получаем токен обновления String refreshToken = tokenResponse.getRefreshToken();
Этот пример демонстрирует как использовать класс GoogleAuthorizationCodeTokenRequest для получения токена авторизации на устройствах Android. Не забудьте заменить значения clientId, clientSecret, authorizationCode и redirectUri на свои реальные значения.
Надеюсь, этот ответ поможет вам заменить класс AuthorizationCodeInstalledApp на Android (Google API). Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.