Вот рабочий код Xcode 8.3 вместе с Swift 3.1:
Выполните следующие действия, чтобы получить данные Facebook:
Шаг 1:
import FBSDKCoreKit
import FBSDKLoginKit
Шаг 2: Соответствует делегату.
FBSDKLoginButtonDelegate
Шаг 3: Кнопка входа в систему Метод IBAction.
//Действие входа в Facebook
@IBAction func facebookLoginAction(_ sender: Any) {
//Fb login process
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .native
fbLoginManager.logOut()
fbLoginManager.logIn(withReadPermissions: ["email"], from: self) { (result, error) -> Void in
if (error == nil){
let fbloginresult : FBSDKLoginManagerLoginResult = result!
if fbloginresult.isCancelled {
}
else if (fbloginresult.declinedPermissions != nil){
if(fbloginresult.grantedPermissions.contains("email")) {
self.getFBUserData()
}
}
}
}
}
Шаг 4: Получите данные Facebook следующим образом.
func getFBUserData(){
if((FBSDKAccessToken.current()) != nil){
FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"first_name, last_name,email, picture.type(large),gender"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil){
let newResult = result as AnyObject
let email = newResult["email"] as? String ?? ""
print("Your Email = \(email)")
let firstName = newResult["first_name"] as? String ?? ""
let lastName = newResult["last_name"] as? String ?? ""
print(FBSDKAccessToken.current())
let gender = newResult["gender"] as? String ?? ""
let id = newResult["id"] as? String ?? ""
print("the access token is \(FBSDKAccessToken.current().tokenString)")
let accessToken = FBSDKAccessToken.current().tokenString
//self.signInUser()
}
})
}
}
Не стесняйтесь комментировать это, надеюсь, это решит вашу проблему. Спасибо
person
Shobhakar Tiwari
schedule
19.09.2017