H,在我的應用程序中,用戶可以使用facebook登錄到應用程序。我可以使用fbsession成功登錄,但我無法註銷表單fbsession.Once用戶登錄到應用程序我已經從人工註銷手機。但我無法從fbseesion註銷。在我的應用程序中,當我點擊登錄按鈕時,它不直接登錄頁面,直接顯示對話框頁面,對於我來說,我必須每次在我的應用程序中顯示登錄頁面。 這裏是我的代碼如何註銷fbsession?
- (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;
}
} ];
}
/////////////////////////從fbsession手動註銷///////// //
- (IBAction)logoutmanullayInbackground:(id)sender
{
[FBSession.activeSession closeAndClearTokenInformation];
[[FBSession activeSession] close];
[[FBSession activeSession] closeAndClearTokenInformation];
[FBSession setActiveSession:nil];
}
爲什麼你想打擾用戶每次登錄表單?通常情況下,您只需登錄一次,然後保持您的狀態。當然,你需要給他們選擇在需要的地方註銷。但我沒有看到每個請求登錄的理由... –
此行聽起來是正確的註銷:[FBSession.activeSession closeAndClearTokenInformation] - 它不工作? –
我的應用程序是一家餐廳的消費者應用程序,所以每個客戶都可以登錄 – user2230971