簡體   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