Ошибка FBPermissionDialog, показывающая страницу приветствия на Facebook

У меня странная ошибка, которую я могу довольно последовательно воспроизвести с помощью FBConnect iPhone SDK, а точнее с классом FBPermissionDialog. В результате вместо стандартного диалогового окна расширенных разрешений пользователю отображается следующее:

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

Единственный способ обойти это - удалить приложение и переустановить.

Вот как я это воспроизвел:

  • При первом входе в систему у пользователя запрашиваются расширенные разрешения на что-либо (диалоговое окно отображается правильно). Пользователь отклоняет разрешение. Пользователь выходит из приложения.
  • Пользователь перезапускает приложение, и, поскольку нам все еще нужно разрешение, мы спрашиваем снова.
  • Вместо диалогового окна разрешений пользователю отображается страница «Добро пожаловать в Facebook».

Единственный способ, чтобы пользователя снова спросили, - это удалить приложение и переустановить. Кто-нибудь еще испытал это? Есть ли обходной путь? Вот код, который я использую, чтобы спросить разрешения, я считаю, что он довольно стандартный.

// Create a permission dialog
FBPermissionDialog *dialog = [[[FBPermissionDialog alloc] init] autorelease];
dialog.delegate = self;
dialog.permission = @"read_stream";
[dialog show];

person Oliver    schedule 16.05.2010    source источник
comment
Что именно вы пытаетесь сделать с FBConnect SDK? Опубликовать на главной странице пользователя?   -  person Ben Williams    schedule 17.05.2010
comment
Помимо прочего, да. При первом запуске эти диалоги отображаются нормально, но при втором запуске они просто показывают страницу Добро пожаловать в Facebook.   -  person Oliver    schedule 17.05.2010


Ответы (1)


Я сталкиваюсь с той же проблемой. Фактически, вам не нужно удалять и переустанавливать приложение. Выход из FBSession поможет. Исходя из этого, вот обходной путь.

Каждый раз, когда происходит один из этих случаев:

  • пользователь "отменяет" FBPermissionDialog
  • после отображения FBPermissionDialog публикация на стене не выполняется, потому что «Пользователь не авторизовал приложение для выполнения этого действия»

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

Должен сказать, я не очень доволен этим, но, по крайней мере, это предотвращает появление уродливого всплывающего окна. Я все еще с нетерпением жду лучшего обходного пути или даже исправления на стороне сервера FBConnect или Facebook.

person David    schedule 24.05.2010
comment
У меня такая же проблема с последней версией FBConnect iPhone SDK (последняя фиксация 2010-04-14) - person Pavol Juhos; 12.07.2010