Регистрация в Facebook: Операция не может быть завершена (ошибка com.facebook.sdk 2)
Я занимаюсь разработкой приложения ios phonegap. Для регистрации я использую плагин phonegap facebook. Это работало нормально в первый раз. Но теперь, когда я пытаюсь зарегистрироваться, это не работает. Я ничего не изменил. Я использую XCode версии 4.6.1 и Cordova версии 2.4.0.
На рисунке показана моя страница разработчиков Facebook.
Что я делаю неправильно?
Пожалуйста, помогите, спасибо.
6 ответов
Я думаю, что это решит вашу проблему:
- Перейдите к вашему приложению Facebook в вашей учетной записи Facebook.
- Нажмите изменить свое приложение.
- Перейдите на вкладку "Основная информация".
- Режим песочницы: отметьте это как Отключить
- Сохраните настройки.
Это будет работать для вас.
Прежде всего, убедитесь, что ваш 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.