iOS 9 Facebook SDK войти / поделиться
Я столкнулся с проблемой, используя последнюю версию Facebook SDK (4.6) на iOS 9. Для авторизации пользователя я использую FBSDKLoginManager. Я попытался установить это:
loginManager.loginBehavior = FBSDKLoginBehaviorNative;
Но SDK по-прежнему, похоже, всегда использует SFSafariViewController для авторизации Facebook.
Вот проблема, с которой я столкнулся. Если пользователь имеет приложение FB, установленное на его устройстве с помощью FacebookAccountA, а затем пытается аутентифицироваться с помощью my app, они представлены этот SFSafariViewController, и они могут аутентифицировать приложение с FacebookAccountB (отдельная учетная запись FB).
Затем в приложении я пытаюсь поделиться со следующим:
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = [NSURL URLWithString:shareString];
FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];
dialog.fromViewController = self;
dialog.shareContent = content;
dialog.delegate = self;
[dialog show];
По умолчанию для диалогового окна общего доступа используется FBSDKShareDialogModeShareSheet. Общий лист представлен в приложении правильно, и сообщение, кажется, работает, однако ссылка размещена на FacebookAccountA (родной аккаунт приложения), а не на FacebookAccountB (тот, который аутентифицировался с помощью моего приложения).
Итак, если пользователь аутентифицирует мое приложение с другой учетной записью facebook, чем они вошли в свое родное приложение, они могут в конечном итоге публиковать сообщения в учетной записи, которая отличалась от той, которую они использовали для аутентификации моего приложения. Есть ли способ предотвратить это?
Заранее благодарю.
3 ответа:
Это сделано специально.
В FB SDK v4. 6 и v3. 24 Мы по умолчанию используем Safari View Controller, а не быстрое переключение на собственное приложение Facebook. В iOS 9 самый быстрый-приложения-переключатель потока создает два междоузлия "ExampleApp хотел бы, чтобы открыть Facebook" и "Facebook хочу открыть ExampleApp".
Для сотен миллионов людей, которые вошли в Safari на iOS, они имеют потрясающий опыт.
Используйте SLComposerViewController для совместного использования Fb. Он будет использовать ваше iOS устройство по умолчанию Facebook SDK для входа в систему и установленные приложения.
Ниже приведена ссылка на это: учебник для SLComposeViewController sharing
Надеюсь, это поможет!