Регистрация в Facebook: Операция не может быть завершена (ошибка com.facebook.sdk 2)

Я занимаюсь разработкой приложения ios phonegap. Для регистрации я использую плагин phonegap facebook. Это работало нормально в первый раз. Но теперь, когда я пытаюсь зарегистрироваться, это не работает. Я ничего не изменил. Я использую XCode версии 4.6.1 и Cordova версии 2.4.0.

введите описание изображения здесь

На рисунке показана моя страница разработчиков Facebook.

Что я делаю неправильно?

Пожалуйста, помогите, спасибо.

6 ответов

Я думаю, что это решит вашу проблему:

  1. Перейдите к вашему приложению Facebook в вашей учетной записи Facebook.
  2. Нажмите изменить свое приложение.
  3. Перейдите на вкладку "Основная информация".
  4. Режим песочницы: отметьте это как Отключить
  5. Сохраните настройки.

Это будет работать для вас.

Прежде всего, убедитесь, что ваш Bundle Id должен быть верным.

И измените настройки, как это

Изменение настройки песочницы отключено.

Также измените настройку вашего P-списка, как это

Это будет работать нормально. Если вы столкнетесь с этой проблемой снова, пожалуйста, дайте мне знать.

Если вы получаете предупреждение "Токен доступа устарел". Добавьте или замените строку кода этими двумя строками, где вы передаете разрешения своему приложению

[FBSession.activeSession closeAndClearTokenInformation]; 

NSArray *permissions = [NSArray arrayWithObjects:@"email", nil];

Если вы все делаете правильно, пожалуйста, проверьте значение "status". Если это 257, пожалуйста, включите ваше приложение в настройках вашего iPhone на Facebook.

Вот код, который поможет вам лучше понять

   [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:^(FBSession *session,
                                                                                                     FBSessionState status, NSError *error)
     {
      if (error)
      {
              NSLog(@"error===%@   status====%u",error,status);
              // Handle errors
                 [self handleAuthError:error];
         }
         else if (FB_ISSESSIONOPENWITHSTATE(status))
         {
             [self getData];
         }
     }];


-(void)handleAuthError:(NSError *)error{
    NSString *alertMessage, *alertTitle;

    if (error.fberrorShouldNotifyUser) {
        // If the SDK has a message for the user, surface it.
        alertTitle = @"Something Went Wrong";
        alertMessage = error.fberrorUserMessage;
    } else if (error.fberrorCategory == FBErrorCategoryUserCancelled) {
        // The user has cancelled a login. You can inspect the error
        // for more context. For this sample, we will simply ignore it.
        NSLog(@"user cancelled login");
    } else {
        // For simplicity, this sample treats other errors blindly.
        alertTitle  = @"Unknown Error";
        alertMessage = @"Error. Please try again later.";
        NSLog(@"Unexpected error:%@", error);
    }

    if (alertMessage) {
        [[[UIAlertView alloc] initWithTitle:alertTitle
                                    message:alertMessage
                                   delegate:nil
                          cancelButtonTitle:@"OK"
                          otherButtonTitles:nil] show];
    }
}

Я надеюсь, что это сработает.

Также есть случай, когда у вас есть 2 или более элементов в массиве типов URL в вашем info.plist. Элемент, связанный с Facebook, должен быть первым, в противном случае вы получите ошибку 2. Вероятно, это ошибка SDK Facebook.

Загрузите новую версию Facebook, и она должна работать. У меня была та же ошибка с SDK версии 3.13.1. Затем я заменил ее на SDK версии 3.14.1. Тогда это сработало для меня.

Это сработало для меня:

Зайдите в приложение настроек вашего iPhone. Откройте настройки Facebook. Прокрутите вниз до своего приложения и убедитесь, что оно позволяет взаимодействовать с Facebook.

Другие вопросы по тегам