2015-05-20 19 views
7

Tôi nhận được một số hành vi kỳ lạ với FBSDKAccessToken:Facebook iOS SDK FBSDKAccessToken.currentAccessToken() là không ngay cả khi đã đăng nhập?

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    println(FBSDKAccessToken.currentAccessToken()) //prints nil 

    if (FBSDKAccessToken.currentAccessToken() != nil) 
    { 
     // User is already logged in, do work such as go to next view controller. 
     println("this never prints") 
     self.generateAPILoginDetails() 
    } 
    else 
    { 
     let loginView : FBSDKLoginButton = FBSDKLoginButton() 
     self.view.addSubview(loginView) 
     loginView.center = self.view.center 
     loginView.readPermissions = ["public_profile", "email", "user_friends"] 
     loginView.delegate = self 
     FBSDKProfile.enableUpdatesOnAccessTokenChange(true) 
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "onProfileUpdated:", name:FBSDKProfileDidChangeNotification, object: nil) 
    } 


} 

Tôi cố gắng để có mã thông báo, nhưng nó luôn luôn bằng không, thậm chí khi nút loginView cho thấy "Log Out" tin nhắn, chỉ ra rằng người dùng , thực sự, đã đăng nhập vào Facebook.

+0

Thật lạ ... bạn có thể xem đăng nhập bằng trang Facebook không ?? Bạn đã đặt ID ứng dụng trong .plist ?? –

+0

Có - appID được đặt. Tôi đã làm theo hướng dẫn này: http: //www.brianjcoleman.com/tutorial-how-to-use-login-in-facebook-sdk-4-0-for-swift/ cho lá thư. –

+1

kiểm tra câu trả lời này- http://stackoverflow.com/questions/30205396/fbsdkaccesstoken-currentaccesstoken-is-not-being-updated-after-log-in/30206661#30206661 –

Trả lời

8

I figured it out:

Bạn cần phải thêm:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "onTokenUpdated:", name:FBSDKAccessTokenDidChangeNotification, object: nil) 

tôi đã có tên NSNotification sai (FBSDKProfileDidChangeNotification).

Sau đó, bạn sử dụng trình xử lý gọi lại để nhận mã thông báo và thực hiện các công cụ với nó!

Xem tại đây để biết thêm thông tin: http://www.andrewkouri.com/swift-1-2-and-facebooks-new-login-sdk/

+5

Lệnh gọi lại hoạt động nhưng vẫn không giải quyết được mã truy cập hiện tại là nil khi được gọi trong viewDidLoad(). Thấy tài liệu chính thức của FBK nói để sử dụng điều này, tôi vẫn còn bối rối như thế nào để làm cho nó hoạt động ... – clicky

Các vấn đề liên quan