使用Facebook应用程序错误的Facebook身份验证

问题描述

| 我按照这里的说明进行操作,并且在未安装Facebook App的情况下工作正常。当安装了官方的Facebook App时,在调用
authorize
之后不会调用该回调函数,并且我不找回令牌。安装该应用程序后,将显示闪亮的登录屏幕(来自Facebook应用程序),否则,将显示Webview。 我进行了很多搜索,但是每个教程都说我应该使用链接页面中的示例。我想念什么?
// Facebook connect
public void facebookConnect(View v) {
    /* CocktailflowTest AppID */
    final Facebook facebook = new Facebook(\"134370943293463\");
    facebook.authorize(this,new String[] { \"email\",\"offline_access\" },new DialogListener() {

        @Override
        public void onFacebookError(FacebookError e) {
            e.getMessage();
        }

        @Override
        public void onError(DialogError e) {
            Toast.makeText(LaunchActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onComplete(Bundle values) {
            mFBToken = facebook.getAccesstoken();
            getPreferences(MODE_PRIVATE).edit().putString(Prefs.FACEBOOK_TOKEN,mFBToken).commit();
            WebService service = new WebService();
            WebServiceListener l = new LaunchWebserviceListener();
            mDialog = ProgressDialog.show(LaunchActivity.this,\"\",\"Logging in...\");
            mDialog.show();
            service.connectWithFacebook(l,mFBToken);
        }

        @Override
        public void onCancel() {
            Log.i(TAG,\"Facebook connect was cancelled by user.\");
        }
    });
}
    

解决方法

您需要在Activity中覆盖onActivityResult方法:
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    facebook.authorizeCallback(requestCode,data);
}