Как я могу автоматически идентифицировать Google? Теперь, когда ClientLogin (https://developers.google.com/accounts/docs/AuthForInstalledApps) устарел, как мы можем выполнить программную аутентификацию в Google с помощью OAuth2?
С ClientLogin мы могли бы выполнить сообщение для https://www.google.com/accounts/ClientLogin с параметрами электронной почты и пароля и получить токен аутентификации.
С OAuth2 я не могу найти решение!
#Мое приложение - это java-фоновый процесс. Я увидел, следуя этой ссылке: developers.google.com/accounts/docs/OAuth2InstalledApp#refresh, как получить новый токен доступа с помощью обновленного токена.
Проблема заключается в том, что я не могу найти пример java о том, как создать экземпляр объекта Analytics (например) для выполнения запроса, когда у меня есть новый действительный токен доступа
Это мой код, который возвращает 401 недопустимые учетные данные при вызове функции "execute()":
public class Test {
static final String client_id = "MY_CLIENT_ID";
static final String client_secret = "MY_SECRET";
static final String appName = "MY_APP";
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
private static final JsonFactory JSON_FACTORY = new JacksonFactory();
static String access_token = "xxxx";
static String refreshToken = "yyyyy";
public static void main (String args[]){
try {
GoogleCredential credential =
new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setClientSecrets(client_id, client_secret).build();
credential.setAccessToken(access_token);
credential.setRefreshToken(refreshToken);
//GoogleCredential
Analytics analytics = Analytics.builder(HTTP_TRANSPORT, JSON_FACTORY)
.setApplicationName(appName)
.setHttpRequestInitializer(credential)
.build();
Accounts accounts = analytics.management().accounts().list().execute();
} catch (Exception e) {
e.printStackTrace();
}
}
В чем проблема?