Могу ли я пройти аутентификацию с помощью имени пользователя и пароля Google в API Google Диска?

Могу ли я пройти аутентификацию, используя только имя пользователя и пароль учетной записи Google вместо использования OAuth? Если нет, планируется ли поддержка такого типа аутентификации в будущих версиях API Google Диска?

В настоящее время я использую API списка документов Google, который позволяет выполнять аутентификацию, используя только имя пользователя и пароль. Поэтому мне интересно, могу ли я сделать то же самое с API Google Диска.


person Evgenii    schedule 02.07.2012    source источник


Ответы (3)


Есть ли причины, по которым вы не можете использовать OAuth 2.0 в качестве механизма авторизации?

Вход клиента в настоящее время устарел и для вас и ваших пользователей было бы лучше использовать OAuth 2.0.

Несколько примеров кода доступны в документации Drive SDK, а также на странице проекта различных клиентских библиотек. чтобы помочь вам начать работу.

person Alain    schedule 02.07.2012
comment
Да, я не могу использовать OAuth, потому что мое приложение представляет собой командную строку и должно запускаться на сервере Linux, не имеющем графического интерфейса. - person Evgenii; 03.07.2012
comment
Вам действительно не нужен графический интерфейс на самом устройстве. Вы можете настроить авторизацию на другом компьютере (например, через SSH), используя Нативный поток приложения. : приложение сгенерирует URL-адрес, который вам нужно будет посетить во время аутентификации, и скопирует код обратно в приложение. - person Alain; 03.07.2012
comment
Спасибо за подробности, Алена. Использование другого компьютера с графическим интерфейсом для аутентификации серверного приложения мне не подходит, так как это усложняет рабочий процесс. Похоже, у меня нет другого выбора, кроме как продолжать использовать «API списка документов». - person Evgenii; 06.07.2012

Если вы используете серверное приложение, рассмотрите возможность использования сервисной учетной записи с OAuth2 и Drive API. Это позволит вам запускать приложение на сервере без необходимости предоставления пользователем учетных данных OAuth2 на консоли или через пользовательский интерфейс. Вы также можете выполнять олицетворение, если хотите, чтобы ваше приложение работало с документами с определенной учетной записью.

 GoogleCredentials credentials = new GoogleCredential.Builder()
            .setTransport(HTTP_TRANSPORT)
            .setJsonFactory(JSON_FACTORY)
            .setServiceAccountId("[[SERVICE_ACCOUNT_EMAIL]]")
            .setServiceAccountScopes(DriveScopes.DRIVE, DriveScopes.DRIVE_FILE,
                "https://www.googleapis.com/auth/userinfo.email",
                "https://www.googleapis.com/auth/userinfo.profile")
            .setServiceAccountPrivateKeyFromP12File(Auth.keyFile)
            .setServiceAccountUser("[[impersonateduser@domain]]")
            .build();
    credentials.refreshToken();
person Stefan Hogendoorn    schedule 22.09.2012

Я где-то нашел это сообщение в блоге (возможно, здесь): http://blog.databigbang.com/automated-browserless-oauth-authentication-for-twitter/.

Я знаю, что это касается Твиттера, но он использует тот же метод, поэтому я считаю, что нужно просто немного изменить имена. Вкратце: если скрипт запускается только сервером, установите Jython + HTMLUnit, имитируйте переход пользователя по сгенерированной ссылке авторизации, нажатие кнопки «разрешить доступ» и получение токена.

person Koyot    schedule 28.11.2012