Frage So zeigen Sie Floating Window für Sign mit Google Plus in Android


Ich muss die Anmeldung mit Facebook und Google Plus in meiner Android-Anwendung implementieren. Erfolgreich umgesetzt Facebook wie das Bild unten.enter image description here

Aber wenn ich mich einlogge mit Google plus es zeigt wie Google plus Bildlink

Bitte helfen Sie mir, das gleiche wie das Facebook Login für die Anmeldung mit Google Plus in Android zu implementieren. So kann der Nutzer ein beliebiges Gmail-Konto eingeben, das er bevorzugt, um sich bei Google anzumelden.


5
2017-12-02 11:05


Ursprung


Antworten:


Ich benutze SozialAuth Bibliothek, die viele soziale Netzwerke unterstützt, einschließlich Facebook und Google+.

Hinweis: Kann Codebeispiele bereitstellen, um sich später bei Bedarf in dieser Bibliothek (Facebook, Google+) in entsprechenden sozialen Netzwerken anzumelden.

Aktualisieren:

1) Client-IDs sind in gespeichert oauth_consumer.properties Datei (in assets Mappe)

#facebook
graph.facebook.com.consumer_key = YOUR_KEY
graph.facebook.com.consumer_secret = YOUR_SECRET

#Google Plus
googleapis.com.consumer_key=YOUR_KEY.apps.googleusercontent.com
googleapis.com.consumer_secret=YOUR_SECRET

2) Google+ benötigt Umleitungs-URL. Geben Sie die Weiterleitungs-URL in der Google Console des Projekts an und fügen Sie sie hinzu SocialAdapter während der Initialisierung.

...
socialAuthAdapter = new SocialAuthAdapter(new ResponseListener(), null);
setAuthProviders();
...

private void setAuthProviders() {
    socialAuthAdapter.addProvider(SocialAuthAdapter.Provider.FACEBOOK, R.drawable.facbook);
    socialAuthAdapter.addProvider(SocialAuthAdapter.Provider.GOOGLEPLUS, R.drawable.google);
    socialAuthAdapter.addCallBack(SocialAuthAdapter.Provider.GOOGLEPLUS, GOOGLE_PLUS_CALLBACK_URL); 
    //urn:ietf:wg:oauth:2.0:oob - if you set this url, than accessToken received from social network should be handled manually (web page (in WebView) with login response from Google+ will contain in header or in response link accessToken, and you will get it manually by parsing that links). not the best way.
    socialAuthAdapter.enable(social);
}

3) Sie erhalten accessToken in ResponseListener wenn der Login-Flow beendet ist:

private class ResponseListener implements DialogListener {
    @Override
    public void onComplete(Bundle bundle) {
        final String providerName = bundle.getString(SocialAuthAdapter.PROVIDER);
        SocialNetwork network = SocialNetwork.valueOf(providerName);

        String accessToken = socialAuthAdapter.getCurrentProvider().getAccessGrant().getKey();
    }

    @Override
    public void onError(final SocialAuthError socialAuthError) {
    }

    @Override
    public void onCancel() {
    }

    @Override
    public void onBack() {
    }
}

Sie können mehr über die Weiterleitungs-URL lesen Hier, im "Erstellen der URL für eine Authentifizierungsanfrage" Sektion.


1
2017-12-09 15:35