我将Facebook登录集成到我的应用程序中,并且工作正常。问题在于注销。
当我在我的设备上打开Facebook应用程序时,我可以执行注销,以便下次打开它时,它会询问我如果我想使用我的常用帐户登录,使用其他帐户登录,甚至创建一个新账户。好,这是预期的。
但我的应用并没有发生这种情况。我的意思是,如果用户打开我的应用,点击"退出"以下代码已运行
// Initialize Facebook SDK on the beginning.
FacebookSdk.sdkInitialize(this.getApplicationContext());
...
// Logout on user choice.
LoginManager.getInstance().logOut();
下次他回到应用程序并点击登录时,他将直接使用他的帐户登录,他不会被问到他想要登录的每个帐户。
我想要清除所有已保存的信息(令牌?),这些信息正用于直接登录。它是否正确?如果是,我该怎么做?
谢谢,
答案 0 :(得分:4)
我正在使用这种方法。它适用于SDK 4.6.0,但我想它应该与4.0相同。如果没有,只需升级;)
public void logoutFromFacebook(final LogoutFacebookListener listener) {
if (AccessToken.getCurrentAccessToken() == null) {
// already logged out
listener.onLoggedOutFromFacebook();
return;
}
new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest
.Callback() {
@Override
public void onCompleted(GraphResponse graphResponse) {
LoginManager.getInstance().logOut();
listener.onLoggedOutFromFacebook();
}
}).executeAsync();
}
监听器:
public interface LogoutFromFacebookListener {
void onLoggedOutFromFacebook();
}
答案 1 :(得分:2)
当您尝试登录时,它会像您的情况一样使用您的网络浏览器(Chrome等)。当你拨打FlsSetValue
时,你只是从facebook sdk注销,但你仍然在你的网络浏览器中登录。 The Android and iOS SDKs don't currently support re-authentication.希望他们将来会出现;)