解析Facebook登录:用户返回null&amp;回调已经注册<facebook>错误

时间:2015-12-30 01:41:12

标签: parse-platform facebook-login

目前正在关注本教程“http://blog.grafixartist.com/facebook-login-with-parse-part-1/”以及其他网页上的一些插件。

以下是我的LoginActivity代码:

        public void parseFbLogin(){
        ParseFacebookUtils.initialize(this);
        FacebookSdk.sdkInitialize(getApplicationContext());
        List<String> permissions = Arrays.asList("basic_info", "user_about_me",
                "user_relationships", "user_birthday", "user_location");

                ParseFacebookUtils.logInWithReadPermissionsInBackground(LoginActivity.this, permissions, new LogInCallback() {
                    @Override
                    public void done(ParseUser user, ParseException err) {
                        if (user == null) {
                            Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
                        } else if (user.isNew()) {
                            Log.d("MyApp", "User signed up and logged in through Facebook!");
                        } else {
                            Log.d("MyApp", "User logged in through Facebook!");
//                            getUserDetailsFromParse();
                        }
                    }
                });
    }

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

1.在ParseFbLogin中,通常它们会返回null但有时可以正常工作。 (允许注册并签名)。

2.无论何时按第二次,应用程序都会崩溃。以下是错误消息

java.lang.IllegalStateException: Callback already registered for <facebook>: com.parse.ParseFacebookUtils$1@3f0d35a3
            at com.parse.ParseAuthenticationManager.register(ParseAuthenticationManager.java:35)
            at com.parse.ParseUser.registerAuthenticationCallback(ParseUser.java:1082)
            at com.parse.ParseFacebookUtils$ParseUserDelegateImpl.registerAuthenticationCallback(ParseFacebookUtils.java:562)
            at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:109)
            at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:92)
            at komi2015.shoppingu.Login.LoginActivity.parseFbLogin(LoginActivity.java:90)
            at komi2015.shoppingu.Login.LoginActivity$4.onClick(LoginActivity.java:83)
            at android.view.View.performClick(View.java:5254)
            at android.view.View$PerformClick.run(View.java:21179)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:145)
            at android.app.ActivityThread.main(ActivityThread.java:6843)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

1 个答案:

答案 0 :(得分:3)

我找到了答案。 问题是因为我在错误的类中初始化parsefacebook和facebooksdk(我应该在应用程序初始化)。