7

这是我登录 facebook 的代码。

mLoginButton = (LoginButton) findViewById(R.id.login);

        // restore session if one exists
        SessionStore.restore(Utility.mFacebook, this);
        SessionEvents.addAuthListener(new FbAPIsAuthListener());
        SessionEvents.addLogoutListener(new FbAPIsLogoutListener());

        /*
         * Source Tag: login_tag
         */
        mLoginButton.init(this, AUTHORIZE_ACTIVITY_RESULT_CODE, Utility.mFacebook, permissions);

        if (Utility.mFacebook.isSessionValid()) {
            requestUserData();
        }
 public class FbAPIsAuthListener implements AuthListener {

        //@Override
        public void onAuthSucceed() {
            requestUserData();
        }

        //@Override
        public void onAuthFail(String error) {
            mText.setText("Login Failed: " + error);
        }
    }

    /*
     * The Callback for notifying the application when log out starts and
     * finishes.
     */
    public class FbAPIsLogoutListener implements LogoutListener {
        //@Override
        public void onLogoutBegin() {
            mText.setText("Logging out...");
        }

        ///@Override
        public void onLogoutFinish() {
            mText.setText("You have logged out! ");
            mUserPic.setImageBitmap(null);
        }
    }

在模拟器上它工作得很好。我已经尝试了 3 台设备,这些设备已经安装了 facebook,这就是问题所在。

它只是在加载时旋转,它什么也不做。我再次看到登录按钮。然后我尝试从原始 facebook 应用程序中注销,当按下我的应用程序上的登录按钮时,我看到了登录窗口,但现在我以前在登录模拟器时看到的是原始 facebook 应用程序的登录窗口。就像是已经开始了这个。

我使用的代码取自 hackbook.java

4

2 回答 2

5

平台状态表示 SSO 存在问题。

仅当您在 android 设备上安装了 facebook 应用程序并且您所描述的内容适合所有这些时,SSO 才有效。在模拟器上,您没有 facebook 应用程序,因此当您的应用程序尝试登录用户时,它会使用 sdk 中的对话框,而不是使用 fb 应用程序附带的 SSO 进程。

在设备上,您曾经说过您确实拥有 fb 应用程序,因此 SSO 启动,至少目前,它存在问题。尝试卸载设备上的 facebook 应用程序,或者只是取消 SSO,即:How to disable Facebook single sign on for android - Facebook-android-sdk

于 2012-04-20T17:14:26.077 回答
0

您需要生成系统的哈希键,然后通过编辑现有的 facebook 应用程序来放置它。

于 2012-08-29T08:20:36.173 回答