如何在Android中显示使用Google Plus登录的浮动窗口

Sri*_*san 5 android android-intent android-layout android-fragments android-activity

我必须在我的android应用程序中使用facebook和google plus实现signin.成功实现了facebook,如下图所示.在此输入图像描述

但是,当我实施登录谷歌加上它显示像谷歌加图像链接

请有人帮我实现同样的Facebook登录,以便在Android中使用Google plus登录.这样用户就可以输入他更喜欢登录Google的任何Gmail帐户.

Vea*_*rji 1

我正在使用SocialAuth库,它支持许多社交网络,包括FacebookGoogle+

注意:如果需要,可以稍后提供如何使用此库(Facebook、Google+)登录相应社交网络的代码示例。

更新:

1)客户端ID存储在oauth_consumer.properties文件中(将其放入assets文件夹中)

#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
Run Code Online (Sandbox Code Playgroud)

2)Google+需要重定向 url。在项目的 google console 中指定重定向 url,并SocialAdapter在初始化时添加它。

...
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);
}
Run Code Online (Sandbox Code Playgroud)

ResponseListener3)登录流程完成后,您将获得accessToken :

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() {
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处的“形成身份验证请求的 URL”部分中阅读有关重定向 url 的更多信息。