在Android中登录Facebook sdk登录问题

时间:2011-07-02 14:53:58

标签: java android xml facebook-android-sdk

enter image description here

ImageView connect = (ImageView) findViewById(R.id.fconnect);
    connect.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
        facebook.authorize(SignIn.this, new String[] {"offline_access", "email", "read_friendlists","publish_stream" },new DialogListener() {
@Override
public void onComplete(Bundle values) {
String AccessToken = facebook.getAccessToken();
                    LoginDirect = "Loading Home....";
                    LoginProcessChkUserStatus();
                }

                @Override
                public void onFacebookError(FacebookError error) {
                }

                @Override
                public void onError(DialogError e) {
                }

                @Override
                public void onCancel() {
                }
            });
        }else{
            progress = true;
            LoginProcessChkUserStatus();
        }


        }
    });

这个facebook api ....我用于在我的应用程序中加载...这工作正常...当我点击登录按钮...授权后进入完整阶段...现在问题来了当我在Facebook SDK中安装了我的手机中的Facebook.apk ....视图就变成了这个....当我点击登录按钮时,它永远不会占用上面的代码....我该怎么做......? ??

enter image description here

2 个答案:

答案 0 :(得分:3)

当我将facebook与我的应用程序集成时,我也遇到了类似的问题。当我点击我的应用程序中的Facebook图标本地Facebook应用程序启动时,当我卸载该原生的Facebook应用程序都正常工作。我找到了通过以下方法克服此问题的方法,并将其发布在stackoverflow上的下方链接:"An error's occurred" when authenticating with Facebook's android sdk。实际上我的问题是,当我使用调试密钥时,我输入的Key Hash值在facebook app寄存器中是错误的。当我根据我在上面链接中发布的内容更正密钥哈希时,我的问题就解决了。请试一试。

答案 1 :(得分:2)

更换屏幕是正常的。如果您安装了Facebook应用程序,SDK会使用它来登录。如果没有,它会使用WebView进行身份验证(如第一个屏幕截图所示)。

为什么这不起作用? Facebook应用程序使用来自Androids活动机制的结果代码。 我在你的代码中看不到onActivityResult()。确保在您的活动中实施该功能。它应该是这样的:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    facebook.authorizeCallback(requestCode, resultCode, data);
}

之后,您的代码应按预期工作。 :)