使用Facebook ios SDK在应用程序中注销Facebook

我已经在我的应用程序中集成了Facebooklogin,因此用户可以同时login我的应用程序帐户和Facebook,并做相应的actions.For Facebook集成我已经添加Facebook SDK.Now当在我的应用程序中单击注销button它必须清除所有Facebook帐户的凭据。我去了:

-(IBAction)btnlogOutClicked:(id)sender { [appDelegate fbDidlogout]; } -(void)fbDidlogout { FBSession* session = [FBSession activeSession]; [session closeAndClearTokenInformation]; [session close]; [FBSession setActiveSession:nil]; } 

但是,当我再次点击button,我直接redirect到我的帐户,而无需loginFacebooklogin页面。

我怎样才能注销Facebook?

使用新的Facebook SDKlogin工具包只写在下面的线,那就是它..

 [[FBSDKLoginManager new] logOut]; 

如果使用swift,请确保具有必要的导入

 import FBSDKLoginKit func logout() { FBSDKLoginManager().logOut() } 

注销你应该试试这个

您可以使用viewDidLoad方法在导航控制器 (右上angular) 上添加注销button

 self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStyleBordered target:self action:@selector(logoutButtonWasPressed:)]; 

上面添加的button操作方法

 -(void)logoutButtonWasPressed:(id)sender { [FBSession.activeSession closeAndClearTokenInformation]; } 

希望对你有帮助!

参考

编辑:

当你问为什么它不要求用户名和密码,所以原因是:

当我们在应用中整合Facebook SDK并尝试login时,它会自动检查两个地方(以确保我们已经loginFacebook)

  1. 首先它检查我们是否已经login到在这个设备上安装的Facebook Native应用程序。

  2. 那么它会检查我们是否在设备设置中保存了我们的FaceBook用户名和密码。

如果两个地方我们都没有login,那么它会在应用程序中询问用户名和密码

您可以在设备设置中查看Facebook帐户设置,如下面的屏幕截图所示,

按主页button – >设置 – > Facebook

在这里输入图像说明

FBSDK是这样注销的:

  [FBSession.activeSession closeAndClearTokenInformation]; FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logOut]; 

在你的postButtonClicked写下面的if else:

 -(void)postButtonClicked { _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain]; [_session resume]; posting = YES; showSlideShow = 1; if (_facebookName != nil) { [self logoutButtonClicked]; } if (![_session isConnected]) { self.loginDialog = nil; _loginDialog = [[FBLoginDialog alloc] init]; [_loginDialog show]; } else { self.loginDialog = nil; _loginDialog = [[FBLoginDialog alloc] init]; [_loginDialog show]; } }