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

Aar*_*hya 44 iphone facebook ios xcode4.5

我已经在我的应用程序中集成了Facebook登录,因此用户可以使用我的应用程序帐户和Facebook登录并执行相应的操作.对于Facebook集成,我添加了Facebook SDK.现在,当我的应用程序中单击"注销"按钮时,它必须清除所有Facebook帐户的凭据.我已经去了:

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


}
Run Code Online (Sandbox Code Playgroud)

但是,当我再次点击按钮时,我会直接重定向到我的帐户而无需进入Facebook登录页面.

我该如何退出Facebook?

iHu*_*ulk 83

使用新的Facebook SDK登录工具包只需在下面写一行就可以了.

[[FBSDKLoginManager new] logOut];
Run Code Online (Sandbox Code Playgroud)

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

import FBSDKLoginKit

func logout() {
    FBSDKLoginManager().logOut()
}
Run Code Online (Sandbox Code Playgroud)


swi*_*Boy 20

要注销,你应该试试这个

您可以在viewDidLoad方法中的导航控制器(右上角)上添加"注销"按钮

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

上面添加按钮动作方法

-(void)logoutButtonWasPressed:(id)sender {
    [FBSession.activeSession closeAndClearTokenInformation];
}
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助!

参考

编辑:

当你问为什么它不要求UserName和Password时,原因是:

当我们在我们的应用程序中集成Facebook SDK并尝试登录时,它会自动检查两个位置(以确保我们已经登录Facebook)

  1. 首先它检查我们是否已经登录到此设备上安装的Facebook Native应用程序.

  2. 然后它检查我们是否在设备设置中保存了FaceBook用户名和密码.

如果两个地方我们都没有登录,那么它将在应用程序中询问UserName和Password

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

按主页按钮 - >设置 - > Facebook

在此输入图像描述


Aqi*_*taz 9

FBSDK正在这样注销:

  [FBSession.activeSession closeAndClearTokenInformation];
  FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
  [login logOut];
Run Code Online (Sandbox Code Playgroud)


Rus*_*shi 0

在你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];
    }
}
Run Code Online (Sandbox Code Playgroud)