【发布时间】:2016-09-15 09:18:35
【问题描述】:
我在 IOS9 中快速使用 Facebook SDK,但没有获得 aceestoken。我已经在 viewcontroller.swift 文件中编写了登录代码。我已经完成了所有设置都在我的 info.plist 文件中,但总是在 accesstoken 中获得 nil 值。
这是我的代码
AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKLoginButton.classForCoder()
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}
}
ViewController.swift
class ViewController: UIViewController,FBSDKLoginButtonDelegate {
override func viewDidLoad() {
super.viewDidLoad()
//outlet for fbsdkloginbutton
@IBOutlet weak var facebookLoginButton: FBSDKLoginButton!
var error:NSError?
//check for error
if error != nil{
print(error)
return
}
//Check for the access token
if (FBSDKAccessToken.currentAccessToken() == nil){
print("USER NOT LOGGED IN")
}else{
print("USER LOGGED IN")
}
//set delegate for button
self.facebookLoginButton.delegate = self
//read permission
facebookLoginButton.readPermissions = ["public_profile","user_friends","email"]
}
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
/*
Check for successful login and act accordingly.
Perform your segue to another UIViewController here.
*/
if (error != nil){
print(error.localizedDescription)
}
if let userToken = result.token{
// GET USER TOKEN HERE
let token:FBSDKAccessToken = userToken
print(token)
//print token id and user id
print("TOKEN IS \(FBSDKAccessToken.currentAccessToken().tokenString)")
print("USER ID IS \(FBSDKAccessToken.currentAccessToken().userID)")
}
}
func applicationWillTerminate(application: UIApplication)
{
// Called when the application is about to terminate. Save data if
}
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
// Actions for when the user logged out goes here
}
}
【问题讨论】:
-
您是如何尝试获取访问令牌的?
标签: ios swift facebook-graph-api facebook-ios-sdk