Не удается получить текущий токен FBSDKAccessToken правильно в swift 3 / FBSDK 4.17

Я использовал функцию FBSDKAccessToken.currentAccessToken (), чтобы получить FB Token, который работал правильно, до тех пор, пока я не перенесла свое приложение в swift 3 и 4.17 SDK. Теперь функция была переименована в FBSDKAccessToken.current () и равна нулю, когда делегат приложения перезагружается. Я выполнил несколько тестов, и мне удалось получить токен после перезапуска моего приложения, и я уже входил в FB ранее, но это не то поведение, которое я ожидал.

EDIT: я вернулся к 4.15 и снова переработал.

Вот код в моем AppDelegate:

func applicationDidBecomeActive(_ application: UIApplication) { FBSDKAppEvents.activateApp(); } func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> (Bool) { let wasHandled: Bool = FBSDKApplicationDelegate.sharedInstance().application(application ,open:url ,sourceApplication:sourceApplication ,annotation:annotation) if (wasHandled) { if let fbtoken = FBSDKAccessToken.current() { loginWithFacebook(fbtoken.tokenString); }else{ print("no current token") } } return wasHandled } func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { let wasHandled: Bool = FBSDKApplicationDelegate.sharedInstance().application( app, open: url as URL!, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation] ) if (wasHandled) { if let fbtoken = FBSDKAccessToken.current() { loginWithFacebook(fbtoken.tokenString); }else{ print("no current token") } } return wasHandled; } 

Спасибо за вашу помощь 🙂 Денис

One Solution collect form web for “Не удается получить текущий токен FBSDKAccessToken правильно в swift 3 / FBSDK 4.17”

По какой-то причине это больше не работает.

Если вы используете FBSDKLoginButton вы должны использовать FBSDKLoginButtonDelegate для ожидания обратного вызова.

 class LoginView: UIViewController, FBSDKLoginButtonDelegate { @IBOutlet weak var facebookButton: FBSDKLoginButton! override func viewDidLoad() { facebookButton.delegate = self } //Called at the end of the user connection func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) { if ((error) != nil) { //Process error } else if result.isCancelled { // Handle cancellations print("result is canceled") } else { if let fbToken = result.token.tokenString { print(fbToken) } } } func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) { print("logout from FB") } } 

В качестве альтернативы вы также можете использовать FBSDKLoginManager. Ознакомьтесь с документом:

https://developers.facebook.com/docs/reference/ios/current/class/FBSDKLoginManager/

Надеюсь, эта помощь!

  • Не удалось выполнить команду: Killed
  • UICollectionView cellForItem вызван неправильно
  • вернуть массив объекта с помощью Alamofire
  • Alamofire 4.0.0: не конвертируется в & Request неоднозначно без дополнительного контекста
  • Как повернуть UIAlertController в Swift
  • NSData to Data swift 3
  • как конвертировать дату UTC в локальную и локальную в UTC?
  • Расширение NSAttributedString в swift 3
  • DISPATCH_TIME_NOW в быстрой версии 3 и обратной совместимости
  • Как сделать телефонный звонок в iOS 10 с помощью Swift?
  • Xcode 8.3 Предупреждения Linker
  • Interesting Posts

    Есть ли ограничение длины строки, хранящейся в Keychain?

    iOS 8 сбой в странном шаблоне

    Что такое позвоночник в UIPageViewController?

    Как я могу использовать API YouTube для поддержки устройств HTML5 и iOS?

    Как установить фоновое изображение для UINavigationBar на разных устройствах iOS

    Как получить только звук видео YouTube?

    Память UIImage не освобождает VM: ImageIO_JPEG_DATA?

    приложение iOS с основными данными, фотографиями и iCloud

    Экспорт видео в полноэкранном режиме с помощью AVAssetExportSession

    Как управлять Копировать, Вставить, Выбрать все, Определить в приложении UITextView iPhone?

    Покажите собственную версию ролика камеры с помощью PhoneGAP (cordova) для iOS

    iOS requestAccessToAccountsWithType не отображает запрос на разрешение / NSAlert

    Как установить таймер между двумя нажатиями кнопок

    Как отключить UIButton?

    IOS Bluetooth не обнаруживает периферийные службы. (иногда!)

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.