我们可以以编程方式注销 facebook

Posted

技术标签:

【中文标题】我们可以以编程方式注销 facebook【英文标题】:Can we logout facebook programmatically 【发布时间】:2013-03-28 11:12:06 【问题描述】:

我在我的 iphone 应用程序中使用 facebook sdk-3.1 登录了 facebook。登录后它将进入我的应用程序并且我没有给出任何注销按钮。所以,当我们点击按钮登录 facebook 时,我将获得前一个用户脸书帐户。

为了解决这个问题,我给按钮注销。

如何在单击按钮时以编程方式注销 facebook

我是这样登录的

-(IBAction)Login:(id)sender


    appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
     appDelegate.getActionForLoginbtn=@"LoginwithFB";
       [appDelegate openSessionWithAllowLoginUI:YES];



-(BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI


    NSArray *permissions=[[NSArray alloc]initWithObjects:@"email", nil];
    return[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) 
        [self sessionStateChanged:session state:state error:error];
    ];

【问题讨论】:

你存储用户名和令牌吗? 所以,在您的注销按钮的点击事件中,将它们设置为 nil 【参考方案1】:

使用此代码:

if (FBSession.activeSession.isOpen)

    [FBSession.activeSession closeAndClearTokenInformation];

【讨论】:

您是否将用户名和令牌存储在 nsuserdefults 或任何软件中【参考方案2】:

斯威夫特版本

import FBSDKLoginKit

FBSDKLoginManager().logOut()

使用 FBSDK 4.4

#import <FBSDKLoginKit/FBSDKLoginManager.h>

然后使用此代码注销。

FBSDKLoginManager *manager = [[FBSDKLoginManager alloc] init];
[manager logOut];

希望这会有所帮助:)

【讨论】:

我看到了函数是如何工作的,但我想我们需要创建实例有点奇怪。为什么他们没有将其实现为静态方法。 setCurrentAccessTokensetCurrentProfile 也是静态的 =)

以上是关于我们可以以编程方式注销 facebook的主要内容,如果未能解决你的问题,请参考以下文章

远程和以编程方式注销活动域用户

Windows 身份验证 - 以编程方式注销用户?

以编程方式注销 ASP.NET 用户

以编程方式从 iOS 中的 facebook SDK 注销

使用 joomla 以编程方式注销

PHP Drupal:以编程方式注销用户