Я использую библиотеку «Хранилище сервисов Google API». Когда я хочу создать хранилище для создания ведра:

private static Storage createStorage(String clientId, String clientSecret, String applicationName, Set<String> scopesList) {
    HttpTransport httpTransport = null;
    Storage storage;
    Credential credential = null;
    VerificationCodeReceiver receiver;

    try {
        httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    } catch (GeneralSecurityException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();

    }
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, jsonFactory, clientId, clientSecret, scopesList).build();

    receiver = new LocalServerReceiver();
    try {
        credential = new AuthorizationCodeInstalledApp(flow, receiver).authorize(clientId);
    } catch (IOException e) {
        e.printStackTrace();

    }
    storage = new Storage.Builder(httpTransport, jsonFactory, credential).setApplicationName(applicationName).build();

    return storage;
}

Windows открывает мой браузер и отображает эту страницу: сообщение Google

Проблема в том, что мой код будет использоваться на сервере, поэтому я хочу, чтобы этот шаг был автоматическим. Что делать?

4
damien marchand 11 Дек 2014 в 12:44
2
Используйте учетную запись службы вместо Oauth2, если вы получаете доступ только к своей собственной информации.
 – 
DaImTo
11 Дек 2014 в 12:49

2 ответа

Как сказано в комментариях, вы должны использовать аутентификацию учетной записи службы для программы, работающей на сервер. Это создает файл закрытого ключа, который вы должны хранить в безопасности, который вы устанавливаете на свой сервер. Веб-потоки OAuth следует использовать только при действиях от имени пользователя на веб-сайте или в установленном приложении.

2
jterrace 11 Дек 2014 в 19:33

Чтобы использовать oauth2 на сервере.
Перейдите в консоль Google: консоль Google.

Учетные данные
Создать новый идентификатор клиента
Сервисный аккаунт
Создать идентификатор клиента
Создайте новый ключ p12.

И используйте документацию: doc

0
damien marchand 12 Дек 2014 в 13:53