以编程方式清除 Android 上的 Facebook SDK 4.0 会话
Programmatically clear Facebook SDK 4.0 session on Android
我将 Facebook 登录集成到我的应用程序中,并且运行良好。问题出在注销上。
当我在我的设备上打开 Facebook 应用程序时,我可以执行注销,以便下次打开它时,它会询问我是否要使用我常用的帐户登录、使用其他帐户登录甚至创建一个新账户。很好,符合预期。
但我的应用程序不会发生这种情况。我的意思是,如果用户打开我的应用程序,点击 "logout",下面的代码是 运行
// Initialize Facebook SDK on the beginning.
FacebookSdk.sdkInitialize(this.getApplicationContext());
...
// Logout on user choice.
LoginManager.getInstance().logOut();
下次他回到应用程序并点击登录时,他将直接使用他的帐户登录,不会询问他要登录的每个帐户。
我想我需要清除所有保存的信息(令牌?),这些信息将用于直接登录。这个对吗?如果可以,我该怎么做?
谢谢,
我正在使用这个方法。它是针对 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();
}
它就像您尝试登录时一样,facebook sdk 在您的情况下使用您的网络浏览器(chrome,等等)。当你调用 LoginManager.getInstance().logOut();
时,你只是从 facebook sdk 注销,但你仍然在你的网络浏览器中保持登录状态。 The Android and iOS SDKs don't currently support re-authentication. 希望他们将来会是 ;)
我将 Facebook 登录集成到我的应用程序中,并且运行良好。问题出在注销上。
当我在我的设备上打开 Facebook 应用程序时,我可以执行注销,以便下次打开它时,它会询问我是否要使用我常用的帐户登录、使用其他帐户登录甚至创建一个新账户。很好,符合预期。
但我的应用程序不会发生这种情况。我的意思是,如果用户打开我的应用程序,点击 "logout",下面的代码是 运行
// Initialize Facebook SDK on the beginning.
FacebookSdk.sdkInitialize(this.getApplicationContext());
...
// Logout on user choice.
LoginManager.getInstance().logOut();
下次他回到应用程序并点击登录时,他将直接使用他的帐户登录,不会询问他要登录的每个帐户。
我想我需要清除所有保存的信息(令牌?),这些信息将用于直接登录。这个对吗?如果可以,我该怎么做?
谢谢,
我正在使用这个方法。它是针对 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();
}
它就像您尝试登录时一样,facebook sdk 在您的情况下使用您的网络浏览器(chrome,等等)。当你调用 LoginManager.getInstance().logOut();
时,你只是从 facebook sdk 注销,但你仍然在你的网络浏览器中保持登录状态。 The Android and iOS SDKs don't currently support re-authentication. 希望他们将来会是 ;)