Facebook SDK: повторная авторизация FBLoginView для публикации потока

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

"'com.facebook.sdk:InvalidOperationException', причина: "FBSession: повторная авторизация недопустима, пока предыдущий вызов повторной авторизации еще не завершен". "

Мне нужно позвонить после разрешения на чтение, но как предотвратить эту проблему?


person LittleFunny    schedule 03.03.2013    source источник


Ответы (2)


По вашей ошибке FBSession не открывается. так что вы должны проверить, если сеанс

открыт перед попыткой повторной авторизации.

person Vishal    schedule 03.03.2013
comment
Посмотрите это обсуждение, может оно вам поможет: -perm" title="разрешения на публикацию или управление не могут быть запрошены с разрешением на чтение"> stackoverflow.com/questions/13933955/ & stackoverflow.com/questions/14695312/ - person Vishal; 03.03.2013
comment
это сообщение об ошибке не говорит о том, что сеанс не открыт, есть еще одна проверка, которая проверяет, открыт ли сеанс, если нет (сообщение об ошибке другое). - person Marcin; 02.01.2014

В документе facebook sdk где-то говорится, что вы не должны получать разрешение на чтение и запись одновременно.

Лучшим подходом будет инициализация с разрешением на чтение, а затем, как только пользователь выполнит действие, требующее разрешения на запись, запросить его во второй раз (что они и хотят, чтобы вы сделали на самом деле, также потому, что если вы используете iOS6 SSO , для разрешения на чтение и запись, я думаю, вам нужно щелкнуть 2 разных представления предупреждений, это невозможно сделать за 1 клик авторизации)

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

person Ultrakorne    schedule 03.03.2013