5

Ich versuche, diese Führer zu erhalten anmelden, um zu Google arbeiten mit: http://www.androidhive.info/2014/02/android-login-with-google-plus-account-1/ https://developers.google.com/+/mobile/android/getting-startedAndroid Login mit Google Offline-Zugriff

Die Anmeldung funktioniert und ich bin in der Lage richtig anmelden. Nun sind die nächsten Schritte, die ich brauche, um die Zugriffs- und Aktualisierungstoken an meinen Server zu senden, so dass der Server auf die Benutzerdetails des Google-Kontos (Bild/Name usw.) zugreifen und sie in der Datenbank als neuer Benutzer speichern kann.

Ich habe versucht, das Zugriffstoken bekommen hier den Code mit: https://github.com/googleplus/gplus-photohunt-client-android/blob/master/src/com/google/plus/samples/photohunt/auth/AuthUtil.java

und wenn ich das Zugriffstoken hier stecken: https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=

ich sehe, dass die access_type „online“ ist. Ich glaube, um ein Refresh-Token zu erhalten und es zum Laufen zu bringen, muss ich den Offline-Zugriff vom Benutzer anfordern. Ich bin mir nicht sicher, wie ich das aus dem Code in der Anleitung oben tun kann.

Ich vermute, es muss hier sein:

// Initializing google plus api client 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this).addApi(Plus.API, null) 
       .addScope(Plus.SCOPE_PLUS_LOGIN).build(); 

Aber es gibt keine Möglichkeit für mich, den Zugriffstyp setzen hier auf offline. An diesem Punkt klingt dieser ganze Prozess ziemlich kompliziert und ich hoffe, dass jemand, der das schon gemacht hat, einen Guide/Tutorial geschrieben hat, der es einfacher macht zu verstehen, wie man sich an seinem Android Gerät anmeldet und diesen Benutzer in seinem speichert Datenbank auf Ihrem Server, so dass beide synchron sind. Jede Hilfe und Richtung würde geschätzt werden.

EDIT 1: auf der Google Text & Tabellen mehr liest, ist es möglich, den Fluss zu bekommen arbeiten, wie ich oben beschrieben: https://developers.google.com/accounts/docs/CrossClientAuth Wie alle android apps Benutzerregistrierung auf mehreren Plattformen bewältigen? Wie beide Android und Website? Wenn die Methode, die ich versuche, der einzige Weg ist, hätte ich mehr Ressourcen darauf erwartet. Oder wenn es eine andere alternative Lösung gibt, würde ich es gerne wissen. Danke.

Antwort

1

In der Tat ist der richtige Ansatz, die CrossClientAuth-Richtung zu verwenden.

Wenn Ihre Anwendung zum ersten Mal geöffnet wird, können Sie ein id_token w/audience anfordern, das Ihrer Website client_id entspricht. Dies erfordert keine zusätzliche Benutzerzustimmung, wenn Sie die E-Mail-Adresse des Benutzers bereits kennen, da id_token nur ein Identifikationstoken ist. Sie können dann überprüfen, ob das Konto auf Ihrem Heimserver ohne zusätzliche menschliche Interaktion vorhanden ist. Wenn das Konto nicht vorhanden ist, können Sie einen Autorisierungscode abrufen und mithilfe der CrossClientAuth-Technik an Ihren Heimserver senden. Nachdem Ihr Home-Server autorisiert wurde, sollte Ihre Android-App in der Lage sein, access_token ohne weitere Genehmigungen zu erhalten, indem Sie einfach solche Tokens anfordern.

+0

sollte die installierte Anwendung und Web-Anwendung in Google Developer Console erstellen? –

+0

Ja, im selben Projekt. Verwenden Sie den Typ "Wep Application" bzw. "Android". – breno