Facebook iOS SDK - Странные эффекты при записи в статус - PullRequest
3 голосов
/ 28 октября 2011

Я обновляю свое приложение для использования xCode 4, iOS5 и последней версии Facebook SDK.Раньше все работало нормально.

Теперь происходят две странные вещи, и, несмотря на просмотр всего кода и поиск по форумам, я не понимаю, почему.

См. update ниже.

Первый вход в систему

Когда пользователь только что вошел в систему, если он либо разделяет статус, либо отменяет попытку сделать это, скриптотображается следующим образом:

<script type="text/javascript"> window.location.href="fbconnect:\/\/ success#_=_";
</script>

Все остальные функции (например, когда это не в первый раз), кажется, работают нормально.

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

Кто-нибудь еще имел эту проблему?Любые указатели будут тепло приветствоваться.Я еще не опубликовал ни одного кода, так как не уверен, на каком бите сосредоточиться, и я использовал весь стандартный код с сайта разработчиков Facebook.

Большое спасибо,

Крис.

ОБНОВЛЕНИЕ

Спасибо @Kristofer Sommestad и @Senior за помощь.У меня было несколько проблем.

Дважды не авторизовать

Запрос диалога фида также запрашивает авторизацию, поэтому не запрашивайте их обоих одновременно.

Обновлен SDK

SDK был обновлен после того, как я обнаружил свои проблемы - так что продолжайте проверять.

Что я не понял, так это то, чтотребуемый код для использования кода SDK был изменен, в частности код для вызова диалогового окна канала.Проверьте https://developers.facebook.com/docs/reference/dialogs/feed/.

Что означает выход из системы

Выход из системы просто выводит пользователя из вашего приложения, а не из Facebook.

Ответы [ 3 ]

5 голосов
/ 03 ноября 2011

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

[_facebook authorize:permissions];
[_facebook dialog:@"feed" andParams:params andDelegate:self];

Не уверен, что это ваша проблема, но я заметил, что это все испортило, так как фактически вызвало 2 диалога аутентификации, где второй завершился выводом Javascript, который вы также видите. По какой-то причине я подумал, что второй не будет вызывать диалог, если authorize уже сделал это ....

Вместо этого я сначала удостоверился в authorize:, но не вызывал dialog:andParams:andDelegate до тех пор, пока авторизация не будет завершена с -fbDidLogin (и сохранением данных диалога для обмена в качестве переменной экземпляра).

Не видел каких-либо проблем с возможностью отправлять сообщения, но, возможно, это как-то связано с первой проблемой (?).

Надеюсь, это вам тоже поможет.

1 голос
/ 24 ноября 2011

Это нежелательное представление javascript меня тоже беспокоит.
Я просто использую диалог фейсбука [facebook dialog: @"feed" andParams: myParameters andDelegate: ptrMyDialogDelegate];. Как показано на https://developers.facebook.com/docs/reference/dialogs/feed/. У меня больше нет авторизации.
Делегатом является мой AppModel-Class (не AppDelegate). Все методы FBDialogDelegate -Протокола вызываются правильно, но после Я закрываю это надоедливое представление.

Я не использовал GIT. Я загрузил ZIP-файл и скопировал все исходные файлы *.[h|m] из каталога src / (включая подкаталог src / JSON / ) и FBDialog.bundle ( Всего 23 файла) в мой существующий проект.

Имеет ли какое-либо значение, если я загружаю ZIP-файл или клонирую GIT-репозиторий SDK Facebook iOS?

Чтобы интегрировать классы Facebook в мой существующий проект MyApp (имеется в виду дерево классов MyApp, подобное показанному в Xcode Project Navigator), мне нужно скопировать (например, drag'n drop или Xcode "Ad Files ...") классы Facebook так же, не так ли?

1 голос
/ 03 ноября 2011

Хорошо, я только что извлек из репозитория GitHub, и я больше не получаю эту ошибку.Это, однако, вызывает диалоговое окно (void): (FBDialog *) диалоговое окно didFailWithError: (NSError *) error

Попробуйте обновить версию SDK до последней версии и повторите попытку.

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