1

Я возился с Google OAuth2 и API, но, похоже, он не достигает того, что я пытаюсь сделать. У меня есть форма Google, которую я хочу получить, но требует, чтобы пользователь заходил в свою учетную запись, прежде чем иметь доступ к ней. Я думал, что GoogleDriveAPI будет работать отлично, за исключением того факта, что он получает только файлы, находящиеся на диске USER, а не публичные файлы, такие как тот, к которому я пытаюсь получить доступ. (Предполагая, что я читаю право на документацию)Как подписать кого-то в Google через HTTP

Итак, что было бы лучшим способом подписать кого-то в Google через HTTP? Приложение, которое я разрабатываю, представляет собой приложение для опроса, и идея состоит в том, чтобы отправить ответ пользователя через HTTP в форму google. При входе в систему он будет препятствовать нескольким представлениям от одного человека. Это разумный способ сделать это? Или есть лучший способ?

ответ

0

Попробуйте использовать Google Sign-In. Вам необходимо включить API Google+ на Google Developers Console. Вы можете проверить шаги на этом tutorial.

Вам также необходимо настроить вход в Google для интеграции входа в Google в свое приложение для Android. Например, чтобы настроить учетную запись Google для запроса идентификатора пользователя и базовой информации профиля, вам необходимо создать объект GoogleSignInOptions с помощью DEFAULT_SIGN_IN parameter. Чтобы запросить адреса электронной почты пользователей, создайте объект GoogleSignInOptions с опцией requestEmail.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
     .requestEmail() 
     .build(); 

Тогда в вашем входе в систему onCreate метода активность, создайте GoogleApiClient объект с доступом к Google Вход через API и опции, которые вы указали.

mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
     .build(); 

Проверьте это example на GitHub.

+0

Я использую Google Sign In, но он по-прежнему дает мне 401 -авторизованный, если я пытаюсь подключиться к форме. Я пробовал передавать маркеры OAuth2 для API-интерфейсов drive/google plus/forms в свойстве запроса авторизации/носителя (HttpUrlConnection), но это, похоже, не помогает. Есть идеи? – shotgunsam

+0

Вы получите ошибку 401, если учетные данные авторизации, предоставленные для запроса, недействительны. Проверьте значение заголовка запроса авторизации HTTP. – abielita

Смежные вопросы