0
我有一個自定義按鈕,我用Facebook登錄,它工作正常,直到最近。訪問令牌已被緩存,並且在用戶下次啓動應用程序時,繼續按鈕將顯示在其位置上。iOS Facebook訪問令牌沒有緩存
最近,不管用戶是否先前已登錄,標記的線返回nil。我爲什麼 - 我沒有在這部分的應用程序中做任何代碼更改?
偶爾登錄失敗,出現以下錯誤也:
Error Domain=com.facebook.sdk.login Code=308 "(null)"
這裏是我的代碼:
override func viewDidLoad() {
super.viewDidLoad()
if (FBSDKAccessToken.currentAccessToken() == nil){ // <<<< ALWAYS RETURNS NIL
self.continueButton.hidden = true
} else {
self.loginButton.hidden = true
self.notYouButton.hidden = false
}
}
@IBAction func loginPressed(sender: AnyObject) {
let permissions = ["user_about_me","user_relationships","user_birthday","user_location","user_status","user_posts", "user_photos"]
let login = FBSDKLoginManager()
login.logInWithReadPermissions(permissions, handler: {
(FBSDKLoginManagerLoginResult result, NSError error) -> Void in
if(error == nil){
self.loginButton.hidden = true
self.continueButton.hidden = false
self.notYouButton.hidden = false
self.notYouButton.enabled = false
//self.performSelector("showBrowse", withObject: nil, afterDelay: 1.0)
} else {
print(error)
}
})
}
編輯:在進一步測試似乎調用FBSDKAccessToken.currentAccessToken()是返回nil如果在viewDidLoad()中調用,但如果我從一個按鈕調用它,按下它將按預期返回Facebook令牌。
override func viewDidLoad() {
super.viewDidLoad()
if let token = FBSDKAccessToken.currentAccessToken() {
print (token)
} else {
print ("no token") <<<<< RETURNS
}
}
@IBAction func buttonPressed(sender: AnyObject) {
if let token = FBSDKAccessToken.currentAccessToken() {
print (token) <<<<< RETURNS
} else {
print ("no token")
}
}