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 iOS SDK 和 swift:如何获取用户的头像
facebook SDK [Firebase Ref.,Swift] 中缺少 FBSessionStateOpen
登录 facebook 时无法完成操作。(com.facebook.sdk 错误 2.0)错误。 iOS 6,iPhone3gs