Вопрос по objective-c, iphone, facebook, ios – фейсбук логин дай мне уже авторизованное приложение без автоматического возврата в приложение

14

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

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

это то же самое поведение Omar Freewan
то же самое после удаления, затем выход / вход Omar Freewan
У меня такой же сценарий в телефоне Omar Freewan
Бег в симуляторе? Потому что симулятор ведет себя немного иначе, чем фактическое устройство. Martin Ingvar Kofoed Jensen
перезапустите приложение, выйдите из Facebook и повторите попытку iArezki

Ваш Ответ

7   ответов
6


1- войдите в свой Facebook как администратор вашего приложения.
2- перейти кhttps://developers.facebook.com/apps/YOUR_FACEBOOK_APP_ID/summary.
3- перейти кsettings & GT;basic & GT;Native IOS app
4- установитьConfigured for iOS SSO: чтобы включено

включение SSO ничего не изменило для меня
Я не могу найти параметры настройки единого входа для iOS. доступны только Deeplinking и Facebook
@Roshni Ios SSO означает единый вход ON (SSO). Пожалуйста, посмотрите это
В моем случае, если я вхожу через Facebook, то после выхода снова я захожу в приложение facebook и снова возвращаюсь в свое приложение. Если я хочу пропустить это перенаправление. Что можно сделать?
это должно произойти, чтобы получить разрешение от приложения facebook или веб-сайта facebook, если у вас нет приложения, у вас есть другая возможность не открывать приложение или веб-сайт - использовать встроенную интеграцию iOS с Facebook Omar Freewan
1

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

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

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

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

Перейти по этой ссылке:developers.facebook.com/docs/mobile/ios/build/#implementsso  И поищите это: измените файл списка свойств приложения. Это покажет вам, как добавить свой префикс URL в PLIST настроек сборки.
Оттуда, где я могу отредактировать это, я следую документации разработчика Facebook, чтобы реализовать это, и единственное, что я ввел, это fb_APPLICATION_ID, который я не вводил в URL! Omar Freewan
Это исправило это? Если это так, пожалуйста, отметьте как ответ. Если нет, каков был результат?
О, вы имеете в виду это, я добавил это раньше, и это все еще добавлено Omar Freewan
это не исправить приложение! Не могли бы вы объяснить решение? потому что, как я уже говорил, я не вводил URL-адреса или что-то подобное! Omar Freewan
1

есть ли текущий сеанс, прежде чем войти в систему с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

 }
1

но я хотел бы добавить еще один полезный ответ дляSwift 3.0 :

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

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

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

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

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

Не стесняйтесь комментировать. Благодарю.

2

да вы делаете FBLogin в своем приложении, вы получаете токен доступа. как только вы получите токен, вы не должны снова входить в систему (в противном случае вам будет предложеноalready authorized this app поскольку вашему приложению уже был предоставлен токен доступа, срок действия которого не истек). Вы должны повторно использоватьunexpired access token.

Как это :

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

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

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

0

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

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

(Кстати. То же самое поведение в приложении для Android и спрайте - проверьте это)

можешь попробовать на андроиде?
но у меня такая же проблема в иосе! и я нашел ту же проблему вtrip adviser  приложение IOS Omar Freewan
Я не могу воспроизвести его в приложении foursquare! Omar Freewan
Можете ли вы воспроизвести ошибку на IOS в приложении Foursquare?
сегодня я попробовал несколько приложений на ios с входом в Facebook. Spotify, Trip Advisor и наше собственное приложение работают отлично. Извините, я не могу воспроизвести ошибку на IOS.
0

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

Похожие вопросы