【问题标题】:Logout of Facebook in app using Facebook ios SDK使用 Facebook ios SDK 在应用程序中注销 Facebook
【发布时间】:2013-03-14 15:49:43
【问题描述】:

我已经在我的应用程序中集成了 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];


}

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

如何退出 Facebook?

【问题讨论】:

  • 哪个 SDK?有许多。 (PHP、Js、C#)...
  • Facebook ios SDK 是我正在使用的...
  • 这段代码对我来说很好用:)

标签: iphone ios facebook xcode4.5


【解决方案1】:

使用新的 Facebook SDK 登录工具包,只需写下一行即可。..

[[FBSDKLoginManager new] logOut];

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

import FBSDKLoginKit

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

【讨论】:

  • 这有效吗? FBSDKLoginManager 需要和登录时使用的一样吗?或者可能是新对象。?
  • 工作如此顺利!谢谢
  • 在以后的修订版中,该类已重命名为 LoginManager() only
【解决方案2】:

注销你应该试试这个

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

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

上面添加按钮的动作方法

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

希望对您有所帮助!

Reference

编辑:

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

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

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

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

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

您可以在设备设置中检查 Facebook 帐户设置,如下图所示,

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

【讨论】:

  • 我尝试使用您的代码,但如果我点击登录按钮而不询问登录 ID 和 psswrd,它会使用我的凭据登录...我还需要做什么?
  • 在 iOS 6 中看到我们有 Facebook 的原生框架,所以当你从应用程序登录时,它会检查你是否已经在设备设置中保存了登录信息,所以请确保你像 Twitter 一样进入 Facebook设置中的帐户信息,否则当您尝试从应用程序登录时,它会提示您输入 UN 和 Pass。
  • 对不起,我没听懂你...现在我可以在浏览器中打开 facebook url 时注销 facebook,然后在那里注销。,然后当我提示输入 Facebook 凭据(Id 和 psswrd)时在我的应用中点击 Login btn
  • @Aaradhya Plz 检查为 Facebook 设置添加的屏幕截图,如果您仍然遇到问题,请告诉我,为您提供小示例代码以实现此目的。
【解决方案3】:

FBSDK 正在像这样注销:

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

【讨论】:

    【解决方案4】:

    如果使用 swift 3 或 4:

    var loginManager = LoginManager()
    

    当需要执行某些操作以注销时粘贴此代码

    loginManager.logOut()
    

    【讨论】:

    • @SaschaM78 求帮忙
    【解决方案5】:

    在你的 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];
        }
    }
    

    【讨论】:

    • 我正在使用 Facebook ios SDK。我没有使用任何 FBLoginDialog。你能告诉我如何使用 Facebook ios SDK 注销吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2015-08-30
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多