Как заменить класс AuthorizationCodeInstalledApp на Android (Google API)?

Ссылка скопирована
1 ответ

Пытаюсь запустить пример кода из Google Quickstart для Java на Android - эмуляторе, но код падает на строчке

return new AuthorizationCodeInstalledApp(flow, receier).authorize("user");

return new AuthorizationCodeInstalledApp(flow, receier).authorize("user");

Выяснилось, что Android не поддерживает данный класс, поэтому нужно вручную словить URL адрес для авторизации, открыть его в браузере и после результат запихнуть в Credential объект. Знаком я с Java поверхностно, поэтому плохо представляю, как это можно реализовать.

Подскажите, пожалуйста, как подобное можно сделать? Может, есть какие-нибудь классы аналоги для подобного рода задач?

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

Для замены класса 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();

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). Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно