(com.фейсбук.пакет SDK.ошибка входа 304.) Ошибка с FBSDK 4.2

Я пытаюсь реализовать логин с функциональностью Facebook, но я получаю следующую ошибку взамен.

ошибка входа в систему: операция не может быть завершена. (com.фейсбук.пакет SDK.ошибка входа 304.)

вот мой код

    - (void)loginWithFacebook {
        NSString *const read_actions = @"email";

        [[[FBSDKLoginManager alloc] init]
         logInWithReadPermissions:@[read_actions] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
         {
             if (error) {
                 NSLog(@"Login Failed with error: %@", error.localizedDescription);
             }
             else if (result.isCancelled)
             {
                 NSLog(@"Login Failed due to Cancel");
             }
             else
             {
                 if ([result.grantedPermissions containsObject:read_actions]) {
                     NSLog(@"Permission granted");

                 }
             }
         }];
    }

5 ответов


это может быть из-за предыдущего маркера входа не очищено.Поэтому перед логином просто выйдите из системы.

NSString *const read_actions = @"email";
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logOut];
[loginManager logInWithReadPermissions:@[read_actions]
                               handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                                   if (error) {
                                       NSLog(@"Login Failed with error: %@", error.localizedDescription);
                                   }
                                   else if (result.isCancelled) {
                                       NSLog(@"Login Failed due to Cancel");
                                   } else {
                                       if ([result.grantedPermissions containsObject:read_actions]) {
                                           NSLog(@"Permission granted");
                                        }
                                   }
                               }];

обновление Swift 4:

каждый раз, когда вы выполняете что-то вроде этого FBSDKLoginManager().login(withReadPermission: ["email"], from: self) { (result, error) in // Check for error and then login } вставить этот код перед логин: FBSDKLoginManager().logOut() и он должен работать нормально :)


Кажется, я делаю

[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error){}

в фоновом потоке во время операции входа в систему. Я удалил его, и он работал отлично.


выйдите из fblogin manager на действие, которое вы выполняете вход непосредственно перед API входа, как: -

fbLoginManager.logOut ()

    fbLoginManager.logIn(withReadPermissions: ["public_profile","email"], from: self) { (result, error) -> Void in

попробуйте это, но его в swift 2 "выход перед входом в действие кнопки входа" пусть логин: FBSDKLoginManager = FBSDKLoginManager() авторизоваться.logOut ()