Я создаю приложение iOS с iOS SDK 4.0 для Facebook, используя простой диалог входа в систему Facebook с классом вида FBSDKLoginButton
.Надежная проверка активной сессии при запуске приложения в Facebook iOS SDK v4.0
При запуске приложения после предыдущего успешного входа в систему кнопка отображается правильно в состоянии «войти в систему», то есть отображает текст «Выход из системы».
Однако [FBSDKAccessToken currentAccessToken]
- это ничто, поэтому мое приложение не осознает активный сеанс и, таким образом, не заполняет поля, связанные с FB, данными.
Поскольку класс FBSession
больше не существует с FB iOS SDK4.0, как я могу правильно определить, существует ли кешированный сеанс?
Я предполагал, что это был способ сделать это [FBSDKAccessToken currentAccessToken]
. Но, как уже упоминалось, currentAccessToken
не установлен ... Любые идеи, почему это может быть нулевым, или как правильно определить активный/кешированный сеанс?
EDIT: Я поместил вызов currentAccessToken
в метод viewDidLoad
моего главного контроллера вида, который содержит кнопку объявления диалога входа в систему Facebook. К сожалению, currentAccessToken равен нулю, как описано выше. Любые предложения, почему он недоступен?
EDIT2: Bigman решил проблему (см. Его комментарии в ответе ниже): Получение currentAccessToken
в viewDidAppear
вместо viewDidLoad
сделал трюк.
Благодарим вас за ответ. Однако я сделал именно это. Я пишу в объективе-c, но не использую раскадровки, но в противном случае я уже сделал то, что вы предложили. Тем не менее, при запуске нет кэшированного токена. – HotelMama
Установили ли вы контрольную точку внутри функции и видите ли она ломается? – Bigman
Да, реальный вход в систему работает отлично. Моя проблема заключается в том, что при перезагрузке приложения после успешного входа в систему нет кэшированного токена. То есть currentAccessToken равен нулю, хотя FBSDKLoginButton показывает состояние входа в систему, указывая, что сеанс все еще запущен. – HotelMama