无法通过Facebook使用Parse执行身份验证

Blu*_*sky 2 android facebook parse-platform

我想用facebook进行身份验证,使用Parse来存储用户的信息.我在我的应用程序类中得到以下代码:

public class App extends Application {    
    public void onCreate() {
        super.onCreate();
        Parse.enableLocalDatastore(this);
        Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
        Parse.initialize(this, "[XXX]", "[XXX]");
        ParseFacebookUtils.initialize(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的登录活动中,以下内容:

public class LoginActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        findViewById(R.id.login_auth_button).setOnClickListener(authClickListener);
    }
    @Override
    protected void onStart() {
        super.onStart();
        currentUser = ParseUser.getCurrentUser();
        if (currentUser != null) {
            loadNext();
        } else {
        }
    }

    public void loadNext(){
        [XXX]
    }

    View.OnClickListener authClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            List<String> permissions = Arrays.asList("public_profile","user_friends");
ParseFacebookUtils.logInWithReadPermissionsInBackground(LoginActivity.this, permissions, new LogInCallback() {
                @Override
                public void done(ParseUser user, ParseException err) {
                    if(err!=null)
                        err.printStackTrace();
                    if (user == null) {
                        Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
                    }
                    else {
                        loadNext();
                    }
                }
            });

        }
    };
}
Run Code Online (Sandbox Code Playgroud)

似乎所有东西都配置正确(如果我用Parse创建一个TestObject,我可以在Parse Dashboard中看到它).当我点击登录按钮,Facebook活动启动时,我可以授权我的应用程序访问Facebook,但是当我同意时,没有任何事情发生,loadNext()从未被调用过,我在日志中没有得到任何关于它的信息.如果我再次单击该按钮,则会出现以下异常:

06-08 22:23:46.542    8722-8722/pics.pickd.pickd W/System.err? com.parse.ParseException: java.lang.RuntimeException: Unable to authenticate when another authentication is in process
06-08 22:23:46.542    8722-8722/pics.pickd.pickd W/System.err? at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:105)
06-08 22:23:46.542    8722-8722/pics.pickd.pickd W/System.err? at android.os.Handler.handleCallback(Handler.java:739)
06-08 22:23:46.542    8722-8722/pics.pickd.pickd W/System.err? at android.os.Handler.dispatchMessage(Handler.java:95)
06-08 22:23:46.542    8722-8722/pics.pickd.pickd W/System.err? at android.os.Looper.loop(Looper.java:135)
Run Code Online (Sandbox Code Playgroud)

任何的想法 ???

Blu*_*sky 7

我找到了答案.我错过了在我的活动上添加onActivityResult()方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)