繁体   English   中英

如何使用我自己的按钮登录Facebook? (Facebook SDK 4.0)

[英]How can I login facebook with my own button? (Facebook SDK 4.0)

我想创建自己的按钮来登录Facebook。 该按钮的功能是:

1 /如果用户已经通过Facebook应用程序登录了Facebook,那么当他们单击我的应用程序中的按钮时,他们也将登录我的应用程序。 (它不得强迫他们再次登录Facebook)。

2 /如果用户未登录,则会显示此屏幕进行登录。 http://a5e2fba00d8bcb729d89839f.javacodegeeks.netdna-cdn.com/wp-content/uploads/2014/12/app_credentials.png

看来我在Facebook SKD 4.0及更高版本中找不到任何教程来做到这一点。 我不能使用其他教程,因为“会话”已被弃用。

请告诉我该怎么做。 先感谢您!

如果用户已经通过Facebook应用程序登录了Facebook,那么当他们单击我的应用程序中的按钮时,他们也将在我的应用程序中登录

如果用户使用Facebook登录,将Facebook ID和Facebook令牌发送到您的服务器,则服务器可以从Facebook获取其余的详细信息,在服务器上创建一个帐户并将其与Facebook(id)帐户关联。

如果用户使用您的帐户登录,则他使用Facebook登录,将您的帐户ID,Facebook ID和Facebook令牌发送到服务器并链接两个帐户。

如果用户未登录,则会显示此屏幕进行登录。

Facebook登录:请参见下面的代码,有关详细信息, 请单击此处

   @Override
    public View onCreateView(
            LayoutInflater inflater,
            ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.splash, container, false);

        //Initialize facebook
        FacebookSdk.sdkInitialize(getApplicationContext());


        loginButton = (Button) view.findViewById(R.id.login_button);
        loginButton.setOnClickListener(new OnClickListener() {
                @Override public void onClick(View v) {
                //Login with facebook on clicking custom button
                    LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
                }
        });

        //Register a callback
        callbackManager = CallbackManager.Factory.create();

        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        // login successful
                    }

                    @Override
                    public void onCancel() {
                         // login cancelled
                    }

                    @Override
                    public void onError(FacebookException exception) {
                         // login error  
                    }
        });

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }

除了此代码,您还必须创建一个

  1. Facebook App ID请参阅Android入门,添加Facebook App ID
  2. Android Key Hash See
  3. 并在AndroidManifest.xml中包含Facebook活动

Facebook提供了有关如何执行此操作的非常详细的指南: https : //developers.facebook.com/docs/facebook-login/android/v2.3

本质上,您必须首先注册Login回调:

    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    //app code
                }

                @Override
                public void onCancel() {
                    //app code
                }

                @Override
                public void onError(FacebookException exception) {
                    //app code
                }
            });

然后,当您要登录用户时,请致电:

            LoginManager.getInstance().logInWithPublishPermissions(
                    this,
                    Arrays.asList(PERMISSION));

当然,代码和AndroidManifest.xml中都有设置以正确设置和初始化Facebook SDK,在上面的链接中对此进行了详细介绍。

还要查看Facebook Android SDK随附的/ samples / HelloFacebookSample示例应用程序,您可以轻松地使其适应您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM