Всегда возвращать ошибку FBErrorCategoryUserCancelled при входе через Facebook в моем приложении

В моем приложении есть три способа входа в систему. одним из них является логин через фейсбук. Но когда я нажимаю на кнопку Facebook, он спрашивает у меня разрешения доступа, когда нажимаюOK тогда это возвращаетсяFBErrorCategoryUserCancelled, И это происходит не на всех устройствах, а на некоторых устройствах. Вот мой код -

if ([[FBSession activeSession]isOpen]) {
    /*
     * if the current session has no publish permission we need to reauthorize
     */
    if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound) {

        [[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends
                                              completionHandler:^(FBSession *session,NSError *error){

                                                  [ProgressHUD dismiss];
                                                  self.view.userInteractionEnabled = YES;

                                              }];

    }else{

        [self fetchUserDetails];
    }

}else{
    /*
     * open a new session with publish permission
     */
    [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                       defaultAudience:FBSessionDefaultAudienceOnlyMe
                                          allowLoginUI:YES
                                     completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
                                         if (!error && status == FBSessionStateOpen) {

                                             [self fetchUserDetails];

                                         }else{

                                             NSLog(@"error");

                                             if ([FBErrorUtility shouldNotifyUserForError:error]) {
                                                 alertTitle = @"Facebook Error";
                                                 alertMessage = [FBErrorUtility userMessageForError:error];

                                                 // This code will handle session closures that happen outside of the app
                                                 // You can take a look at our error handling guide to know more about it
                                                 // https://developers.facebook.com/docs/ios/errors
                                             } else if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryAuthenticationReopenSession) {
                                                 alertTitle = @"Session Error";
                                                 alertMessage = @"Your current session is no longer valid. Please log in again.";

                                                 // If the user has cancelled a login, we will do nothing.
                                                 // You can also choose to show the user a message if cancelling login will result in
                                                 // the user not being able to complete a task they had initiated in your app
                                                 // (like accessing FB-stored information or posting to Facebook)

                                             } else if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryUserCancelled) {
                                                 NSLog(@"user cancelled login");

                                                 alertTitle  = @"Facebook Error";
                                                 alertMessage = @"System login cancelled";

                                                 // For simplicity, this sample handles other errors with a generic message
                                                 // You can checkout our error handling guide for more detailed information
                                                 // https://developers.facebook.com/docs/ios/errors
                                             } else {
                                                 alertTitle  = @"Something went wrong";
                                                 alertMessage = @"Please try again later.";
                                                 NSLog(@"Unexpected error:%@", error);
                                             }

                                                 [[[UIAlertView alloc] initWithTitle:alertTitle
                                                                             message:alertMessage
                                                                            delegate:nil
                                                                   cancelButtonTitle:@"OK"
                                                                   otherButtonTitles:nil] show];

                                             [ProgressHUD dismiss];
                                             self.view.userInteractionEnabled = YES;

                                         }
                                     }];
}

Любая помощь будет оценена. Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос