【问题标题】:How to show Floating Window for Sign with Google Plus in android如何在 android 中显示用于使用 Google Plus 进行签名的浮动窗口
【发布时间】:2014-12-02 11:05:07
【问题描述】:

我必须在我的 android 应用程序中使用 facebook 和 google plus 实现登录。成功实现 facebook,如下图所示。

但是当我使用 Google plus 实现登录时,它会显示为 Google plus image link

请有人帮我实现与 Facebook 登录相同的功能,以便在 android 中使用 Google plus 登录。这样用户就可以输入他喜欢的任何 gmail 帐户来登录 Google。

【问题讨论】:

  • g+ 那样显示只是因为您没有使用该帐户设置 plus 配置文件,否则它将直接显示权限屏幕,它使用对话框(或 dialogFragment?)无论如何。当移动应用未安装在设备上时,FB 使用 webview 方法。

标签: android android-layout android-intent android-activity android-fragments


【解决方案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

2) Google+ 需要重定向网址。在项目的google控制台中指定redirect 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);
}

3) 登录流程结束后,您将在ResponseListener 中获得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() {
    }
}

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

【讨论】:

  • 嘿伙计,你的链接支持我很多,但你能告诉我如何在库文件中更改客户端 ID 和重定向 uri。
猜你喜欢
  • 2023-03-26
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
相关资源
最近更新 更多