【问题标题】:facebook logout is not working in ios 9.0facebook 注销在 ios 9.0 中不起作用
【发布时间】:2016-12-20 09:22:07
【问题描述】:

我在使用 Facebook SDK 登录时无法注销。请检查以下代码:

self.login =[[FBSDKLoginManager alloc]init];
[FBSDKAccessToken setCurrentAccessToken:nil];
[FBSDKProfile setCurrentProfile:nil];
[self.login logOut];

【问题讨论】:

  • 当我尝试使用上述代码注销时无法注销 & 下次我尝试登录时,我会收到一条消息,即“您已经授权应用程序”。请给我建议。
  • 请帮我解决这个问题...

标签: ios objective-c iphone facebook ios9


【解决方案1】:

这两个键是 SSO 和 Safari。 Facebook 对 Facebook 登录过程的记录很差。您可能想要关闭 SSO。这是在 Facebook 开发者网站上,您的应用已在其中注册,位于“设置”下。但更重要的是我不得不改变 FBLoginManager 的行为来使用 UIWebView 而不是 Safari。我用以下 sn-p 做到了这一点:

FBSDKLoginManager *loginMgr = [[FBSDKLoginManager alloc] init];
loginMgr.loginBehavior = FBSDKLoginBehaviorWeb;

如果您使用默认行为,它将通过 Facebook 应用程序或浏览器 Safari 管理注销,而不是直接从应用程序管理。 FBSDKLoginBehaviorWeb 是在弹出窗口中使用 iOS UIWebView。这非常有效,每次注销后都需要凭据。

【讨论】:

    【解决方案2】:

    这是当您使用 FBSDKLoginButton 在注销前不清除任何内容时的解决方案:

    - (void)loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error{
        if (!error) {
            if ([FBSDKAccessToken currentAccessToken]) {
                [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"picture.type(large), email, name, id"}]
                 startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
                     if (!error) {
                         //Perform your logic & then logout using below code
                         FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
                         [loginManager logOut];
                     }
                 }];
            }
        }
    }
    

    【讨论】:

    • 我在注销时尝试了上面的代码,但它不起作用....因为我无法注销。
    【解决方案3】:

    检查您是否在 Safari 浏览器中登录,Facebook 不负责在 Safari 浏览器中注销。

    self.login =[[FBSDKLoginManager alloc]init];
    [FBSDKAccessToken setCurrentAccessToken:nil];
    [FBSDKProfile setCurrentProfile:nil];
    [self.login logOut];
    

    logout 方法只会关闭 iOS 应用程序中的 Facebook 会话。 所以只需从 safari 浏览器中注销,然后检查它是否有效。

    【讨论】:

    • 当用户点击注销按钮时,您能否告诉我另一种解决方案,然后它应该像谷歌一样注销......
    • 这是手动解决方案,我需要像谷歌注销一样动态。
    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 2014-04-04
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多