Facebook login дать мне уже авторизованное это приложение без автоматического возврата в приложение

Мое приложение должно внедрить логин с facebook, но я заметил, что каждый раз, когда я хочу войти в facebook, скажите, что вы уже авторизуете это приложение, вопрос, если я уже разрешил приложение, facebook должен вернуться автоматически, не нажимая кнопку okey как я видел в других приложениях?

см. прикрепленное изображение enter image description here

Ответ 1

Я исправил свою проблему, выполнив следующие шаги:
1- войдите в свой facebook как администратор вашего приложения.
2- перейдите к https://developers.facebook.com/apps/YOUR_FACEBOOK_APP_ID/summary.
3 - перейти к настройкам > базовый > приложение Native IOS
4- настройте Настроено для iOS SSO:

Ответ 2

В iOS/Android время истечения FBAccessToken составляет до 60 дней. Когда вы делаете FBLogin в своем приложении, вы получаете токен доступа. после того, как вы получите токен, вы не должны снова вводить логин (иначе вам будет предложено уже авторизовать это приложение, так как вашему приложению уже был предоставлен токен доступа раньше, который не истек). Вы должны повторно использовать неистекший токен доступа.

Вот так:

if FBSDKAccessToken.currentAccessToken() != nil {
  print(FBSDKAccessToken.currentAccessToken().userID)
  print(currentAccessToken().tokenString)
//OR call the *FBGraphRequest*
 }

Примечание: для входа в браузер приложения (SVC: контроллер просмотра Safari)

см. больше: https://developers.facebook.com/blog/post/2015/10/29/Facebook-Login-iOS9/ а также https://developers.facebook.com/docs/reference/ios/4.9/class/FBSDKLoginManager/

Ответ 3

Вам нужно убедиться, что ваше приложение имеет правильный префикс URL в настройках сборки. Также убедитесь, что префикс URL соответствует вашему префиксу Facebook ID/URL в приложении для разработчиков Facebook.

Изменить: Вероятно, ваша проблема связана с тем, что access_token истекает, поэтому он должен повторно запрашивать разрешения.

Это произойдет, если ваше приложение не запрашивает разрешения offline_access. В новом SDK offline_access устарели, и теперь вам нужно расширить access_token.

Смотрите эту ссылку: https://developers.facebook.com/docs/mobile/ios/build/#extend_token

Ответ 4

Вы должны проверить, есть ли текущий сеанс перед входом в систему с помощью FBSDKLoginManager. Не используйте [loginManager logout] перед входом в систему.

if ([FBSDKAccessToken currentAccessToken]) 
 {
      NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]);
      // Now get details using graphpath. 
 } else {
     // login with permissions using FBSDKLoginManager and get details using graphpath in completion

 }

Ответ 5

На facebook.com есть открытая ошибка.

https://developers.facebook.com/bugs/190389531089978

Но ошибка появляется только в android, ios отлично работает.

(btw. такое же поведение в приложении foursquare и spotify android - проверьте его)

Ответ 6

Запустите приложение iOS FB на устройстве, а не на симуляторе, оно отлично работает и не отображает уже разрешенный экран. Спасибо.

Ответ 7

Как уже ответил этот вопрос, но я хотел бы добавить еще один полезный ответ для Swift 3.0:

При использовании FB Login в Swift у меня есть проблема, и я ранее делал так:

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .systemAccount

В этом случае учетная запись системы для проверки пользователя авторизована для входа в систему или нет. Если вы не выходите из системы и не авторизуетесь через другого пользователя, приложение показывает то же самое "Уже авторизованное" сообщение вместо Fresh login. Поэтому я использовал этот способ, и этот трюк выполняет работу:

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .web.

Этот экран входа в систему после выхода из системы. Надеюсь, это поможет решить эту проблему.

Не стесняйтесь комментировать. Спасибо.