【发布时间】:2013-10-07 08:41:14
【问题描述】:
H,在我的应用程序中,用户可以使用 facebook 登录应用程序。我可以使用 fbsession 成功登录,但我无法从 fbsession 注销。用户登录应用程序后,我必须手动注销会话。但我无法从 fbseesion 注销。在我的应用程序中,当我单击登录按钮时,它不会直接进入登录页面,而是直接显示对话框页面,而对于我来说,我每次都必须在我的应用程序中显示登录页面。 这是我的代码
- (IBAction)facebooklogin:(id)sender
{
[FBSession openActiveSessionWithReadPermissions:@[@"email",@"user_location",@"user_birthday",@"user_hometown"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
switch (state) {
case FBSessionStateOpen:
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error) {
NSLog(@"error:%@",error);
}
else
{
// retrive user's details at here as shown below
NSLog(@"user :%@",user);
NSDictionary *resultdict=[[[NSDictionary alloc]initWithObjectsAndKeys:user.first_name,@"FirstName",user.last_name,@"LastName",user.last_name,@"LastName",user.birthday,@"Birthday",user.username,@"Username",[user objectForKey:@"email"],@"Email",user.id,@"FBUserId", nil]autorelease];
[[NSUserDefaults standardUserDefaults]setObject:resultdict forKey:@"FBUserDetails"];
NSString *userid=[NSString stringWithFormat:@"%@@social",user.id];
[self performSelector:@selector(checkSocialNetworkingRegisteredOrNot:) withObject:userid afterDelay:0.0f];
}
}];
break;
default:
break;
}
} ];
}
////////////////////////////////////////////////////////////////////////////////
- (IBAction)logoutmanullayInbackground:(id)sender
{
[FBSession.activeSession closeAndClearTokenInformation];
[[FBSession activeSession] close];
[[FBSession activeSession] closeAndClearTokenInformation];
[FBSession setActiveSession:nil];
}
【问题讨论】:
-
为什么每次都要用登录表单来打扰用户?通常,您只需登录一次,然后它就会保持您的状态。当然,您需要让他们选择根据需要在某处注销。但我认为没有理由每次请求都登录......
-
这行听起来很适合注销:[FBSession.activeSession closeAndClearTokenInformation] - 它不起作用吗?
-
我的应用程序是餐厅的消费者应用程序,因此每个客户都可以登录
-
[FBSession.activeSession closeAndClearTokenInformation] 它不起作用
-
它对我有用——我试了一下。你什么时候做?就在他登录之后?只留下这一行:[FBSession.activeSession closeAndClearTokenInformation];
标签: ios xcode facebook fbconnect