【问题标题】:Latest Facebook SDK not logged out from App最新的 Facebook SDK 未从 App 注销
【发布时间】:2020-05-12 09:43:40
【问题描述】:

我更新了我最新的 Facebook SDK。

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; login.loginBehavior=FBSDKLoginBehaviorNative;

loginBehavior 不适用于此。 现在我的应用不会每次都退出登录

单击取消后,我没有任何选项可以使用任何其他帐户登录。

我的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 return  [[FBSDKApplicationDelegate sharedInstance] application:application
                                     didFinishLaunchingWithOptions:launchOptions];
}
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [FBSDKAppEvents activateApp];
}

 #pragma mark-5.Facebook Button Click
- (IBAction)bnfacebookClicked:(id)sender
{
    UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
        while (topController.presentedViewController) {
               topController = topController.presentedViewController;
            }


    NSArray * allViewController = self.navigationController.viewControllers;
    NSLog(@"COntroller%@",allViewController);


    //Facebook Button click...
    txtEmailLogin.text = nil;
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(profileUpdated:) name:FBSDKProfileDidChangeNotification object:nil];


      FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
           [login logOut];
            NSLog(@"TOken%@",[FBSDKAccessToken currentAccessToken]);
    [login logInWithPermissions:@[@"public_profile", @"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
    {
               if (error)
               {
               } else if (result.isCancelled)
               {
               }
               else
               {
                   _fbRequesting = NO;


                   if ([result.grantedPermissions containsObject:@"public_profile"])
                   {
                       if ([FBSDKAccessToken currentAccessToken])
                       {
                           [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"name, email, picture"}]
                            startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id user, NSError *error)
                            {
                                if (!error)
                                {
                                    ViewSignIn.hidden=false;
                                    [objappdelegate startActivityIndicator];
                                    typesocial=1;
                                    Userdetails=user;
                                    stremailidfinal=[NSString stringWithFormat:@"%@",[Userdetails valueForKey:@"email"]];
                                    [self SocialLoginSignup:Userdetails];

                                }
                            }];
                       }
                   }
               }
           }];
   // }

}

有人可以帮忙吗?

【问题讨论】:

    标签: objective-c xcode facebook


    【解决方案1】:

    这是有意设计的。如果您需要使用其他帐户登录,则需要从您的移动设备上退出 Facebook 应用程序,可能还需要退出 Safari 中的 facebook.com。

    原因是,如果您退出某个应用,它不应该让您退出 Facebook,因为这违反了用户的期望。

    上面写着here for Unity SDK,但同样的原则也适用。

    在执行 Facebook 范围内注销的游戏中设置注销控件将违反用户的期望。相反,允许用户控制他们在 Facebook 上的登录状态。

    【讨论】:

    • 没有别的办法了吗?
    猜你喜欢
    • 2011-10-22
    • 1970-01-01
    • 2014-07-31
    • 2011-05-19
    • 2015-08-30
    • 2011-05-31
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多