这是我登录 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
平台状态表明 SSO 存在问题。
仅当您在 Android 设备上安装了 facebook 应用程序时,SSO 才起作用,并且您所描述的内容正好适合所有这些。
在模拟器上,您没有 facebook 应用程序,因此当您的应用程序尝试让用户登录时,它会使用 sdk 中的对话框,而不是使用 facebook 应用程序附带的 SSO 进程。
在设备上,您说过您确实有 Facebook 应用程序,因此 SSO 启动,至少目前存在问题。
尝试卸载设备上的 Facebook 应用程序,或者只是取消 SSO,即:如何禁用 Android 的 Facebook 单点登录 - Facebook-android-sdk
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)