我们可以以编程方式注销 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];
希望这会有所帮助:)
【讨论】:
我看到了函数是如何工作的,但我想我们需要创建实例有点奇怪。为什么他们没有将其实现为静态方法。setCurrentAccessToken
和 setCurrentProfile
也是静态的 =)以上是关于我们可以以编程方式注销 facebook的主要内容,如果未能解决你的问题,请参考以下文章