这是我登录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);
}
}
在模拟器上它完美无缺。我已经尝试过已经安装了facebook的第3批设备,这就是问题所在。
它只是在加载时旋转,它什么也没做。我再次看到登录按钮。 然后我尝试从原始的facebook应用程序注销,当我按下我的应用程序上的登录按钮时,我看到登录窗口,但现在我曾经看到登录模拟器但登录原始facebook应用程序的登录窗口。就像是已经开始这一个。
我使用的代码来自hackbook.java
答案 0 :(得分:4)
平台状态表明SSO存在问题。
只有在Android设备上安装了facebook应用程序时才能使用SSO,并且您所描述的内容适合所有这些。 在模拟器上你没有facebook应用程序,所以当你的应用程序试图在其中记录用户时,使用它在sdk中的对话框而不是使用fb应用程序附带的SSO进程。
在设备上你怎么说你有fb应用程序,所以SSO开始,至少目前,它有问题。 尝试在设备上卸载facebook应用程序,或者只是取消SSO,即:How to disable Facebook single sign on for android - Facebook-android-sdk
答案 1 :(得分:0)
您需要生成系统的哈希键,然后通过编辑现有的Facebook应用程序来放置它。