与 Facebook iOS SDK 共享后从 Facebook 注销

Posted

技术标签:

【中文标题】与 Facebook iOS SDK 共享后从 Facebook 注销【英文标题】:Logout from Facebook after a share with Facebook iOS SDK 【发布时间】:2014-08-20 12:15:29 【问题描述】:

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

我已经实现了 ios Facebook 登录,所以用户被重定向到 Safari 登录。共享后,我清理了所有令牌,并且在我的应用程序中会话被破坏,但是当我之后去 Safari 时,用户仍然登录。

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

亲切的问候, 弗雷德里克

【问题讨论】:

【参考方案1】:

我过去做过类似的事情。 这是一个流程,任何持有 iPad 的用户都使用他或她的 FB 凭据登录,强制 sdk 呈现 web 视图。

快速浏览一下,这是我为它编写的代码: (此代码已有 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];

【讨论】:

以上是关于与 Facebook iOS SDK 共享后从 Facebook 注销的主要内容,如果未能解决你的问题,请参考以下文章

iOS Facebook SDK 原生分享

Ios Facebook SDK 我如何共享图像、链接、文本?

通过 Facebook iOS SDK 共享链接时如何传递查询字符串参数?

通过 ios Facebook SDK 中的共享对话框共享时归属应用名称

Facebook SDK 3.5 - iOS 5 上的共享对话框

ios facebook swift sdk 共享对话框永远不会返回成功