Facebook SDK 和 Swift 2.0 - 处理 accessToken 的问题

Posted

技术标签:

【中文标题】Facebook SDK 和 Swift 2.0 - 处理 accessToken 的问题【英文标题】:Facebook SDK and Swift 2.0 - Problems with handling accessToken 【发布时间】:2016-01-22 21:26:15 【问题描述】:

我的名字是文森特,我需要你的帮助!

(我的代码并不详尽) 使用 Facebook SDK 登录或注销没有问题……但是 当我启动我的应用程序时,没有访问令牌,当我点击登录按钮时,它会打印一个 accessToken,然后我注销。

应用启动时如何获取accessToken?

import UIKit
import FBSDKCoreKit
import FBSDKLoginKit

class HomeViewController: UIViewController 


    override func viewDidLoad() 

        super.viewDidLoad()

        getUserStatuts()

    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
    

    // MARK -> Facebook Connect

    func loginToFacebook() 
        if let fbToken = FBSDKAccessToken.currentAccessToken() 
            print("Acces token : \(fbToken)")
            loginManager.logOut()
            print("Logout")
         else 
            print("Login")
            loginManager.logInWithPublishPermissions(publishPermissions, fromViewController: nil, handler: 
                (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in
                if error == nil 
                    self.getUserData()
                 else 
                    print(error.localizedDescription)
                
            )
        
    

    func getUserData() 
        let readPermissions = ["public_profile", "email", "user_friends", "user_birthday"]
        let parameters = ["fields": "id, first_name, last_name, name, birthday, picture.type(large)"]
        let request = FBSDKGraphRequest(graphpath: "me", parameters: parameters)
        request.startWithCompletionHandler(
            (connection, result, error) -> Void in
            if error == nil 
                // display info
            
        )
    

【问题讨论】:

【参考方案1】:

在你要实现的登录功能中 let fbLogin = FBSDKLoginManager() fblogin.logout()

fblogin.logout() 必须在 fbLogin.logInWithReadPermissions(["email"], fromViewController: self) (facebookResult, facebookError) in if facebookError != nil ` 之前实现,以清除以前登录的任何访问令牌。

【讨论】:

以上是关于Facebook SDK 和 Swift 2.0 - 处理 accessToken 的问题的主要内容,如果未能解决你的问题,请参考以下文章

Facebook iOS 登录 API 2.0 (SDK 3.15.1)

Facebook SDK 的 Swift 包问题

Facebook iOS SDK 和 swift:如何获取用户的头像

facebook SDK [Firebase Ref.,Swift] 中缺少 FBSessionStateOpen

登录 facebook 时无法完成操作。(com.facebook.sdk 错误 2.0)错误。 iOS 6,iPhone3gs

Facebook 使用 Parse SDK 登录(iOS 9、Xcode 7.1、Swift 2.1)