Ошибка входа в диалог Facebook - PullRequest
5 голосов
/ 10 февраля 2012

Я использую диалог Facebook, чтобы публиковать на стене таким образом

[facebook dialog:@"feed" andParams:params andDelegate:self];

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

Ответы [ 3 ]

2 голосов
/ 10 февраля 2012

Самый простой способ исправить это - сохранить ваш params в иваре.Затем, когда FBConnect вызывает вашего делегата с помощью fbDidLogin, вы можете автоматически повторно выполнить вызов dialog:andParams:andDelegate.

Более длинное и правильное решение заключается в том, что вам необходимо разделить этапы авторизации и публикации.Вы можете сохранить fb.accessToken и дату истечения срока действия в NSUserDefaults, а затем вызывать их при первой попытке доступа к FBConnect.Если срок действия истек, вы звоните по номеру authorize:delegate, чтобы получить новый ключ доступа.Как только fbLogin будет завершен, вы отправляете диалоговое окно пользователю, чтобы продолжить.

В качестве альтернативы, вы не можете заново изобрести колесо и проверить ShareKit http://getsharekit.com/ для более полного решения.

0 голосов
/ 15 февраля 2012

Лучшее решение, которое я нашел для этой проблемы, это вызов [диалоговое окно facebook: @ "feed" andParams: params andDelegate: self] еще раз в диалоговом окне (void): (FBDialog *) didFailWithError: (NSError *) error.Он вызывается после того, как вы вошли в систему, но диалог закрывается.

0 голосов
/ 12 февраля 2012

Попробуйте использовать этот код, указанный в этой ссылке, вместе с этим ответом вместо кода "ПРИМЕР HACBOOK", предоставленного Facebook ... Страница диалога API Facebook, показывающая ошибку во второй раз и после этого . Не забывайтедать appId в верхней части вашего viewController ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...