与Facebook iOS SDK分享后从Facebook退出

时间:2014-08-20 12:15:29

标签: ios facebook facebook-sdk-3.1

我正在构建一个iPad应用程序,用户可以将图像发布到他/她的时间线。 这些iPad是可以租用的,​​因此用户应该在共享完成后注销。

我已经实现了iOS Facebook登录,因此用户被重定向到Safari进行登录。在共享之后我清理了所有令牌,并且在我的应用程序中会话被销毁,但是当我之后访问Safari时,用户仍然登录。

有没有办法确保用户在任何地方都注销?

亲切的问候, 弗雷德里克

1 个答案:

答案 0 :(得分:1)

我过去做过类似的事情。 这是一个持有iPad的用户使用他或她的FB凭据登录的流程,迫使sdk呈现webview。

快速浏览一下,这是我为它写的代码: (此代码为1.5岁)

 FBSession *newSession = [[FBSession alloc] initWithPermissions:@[
                             @"user_about_me",
                             @"publish_actions",
                             @"user_birthday",
                             @"friends_birthday",
                             @"email"
                            ]];


    [FBSession setActiveSession:newSession];

    [[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

        [FBSession setActiveSession:session];

        if(error){
            NSLog(@"Error opening session");
            [self showLoginError:error];
            return;
        }

        if(status == FBSessionStateOpen){
            NSLog(@"FB session opened");
            [self getMe];
        }
    }];

当流程结束或用户取消流程时,我按如下方式将用户注销:

[[FBSession activeSession] closeAndClearTokenInformation];    
[FBSession setActiveSession:nil];

<强>更新 共享对话框的代码:

NSMutableDictionary *dialogParameters = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   [NSString stringWithFormat:@"%@ - Vote for us!", 
                                   teamName, @"name",
                                   @"Campaign title", @"caption",
                                   shareMessage, @"description",
                                   shareTeamPageURL, @"link",
                                   sharePictureURL, @"picture", nil];


    [FBWebDialogs presentFeedDialogModallyWithSession:[FBSession activeSession] 
    parameters:dialogParameters 
    handler:nil];