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

naj*_*kun 2 android facebook-login

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

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

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

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

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

小智 5

如果用户已经通过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);
    }
Run Code Online (Sandbox Code Playgroud)

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

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