0
私はログインのためのFacebook SDKを使用していますが返されません。問題は、値が返されないことです。graphRequest.startは</p> <p>この私のコードスウィフト3を使用してiOS版ではデータ
import UIKit
クラスのViewController:のUIViewController {
@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var uLoginButton: UIButton!
let loginButton: FBSDKLoginButton = {
let button = FBSDKLoginButton()
button.readPermissions = ["email"]
return button;
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(loginButton);
loginButton.center = view.center
loginButton.delegate = self
if (FBSDKAccessToken.current() != nil) {
fetchProfile();
}
self.style()
}
func fetchProfile(){
let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields" : "email, name, first_name, last_name, picture.type(large)"])
let connection = FBSDKGraphRequestConnection()
connection.add(graphRequest, completionHandler: { (connection, result, error) in
if error != nil {
//do something with error
print("No Data returned")
print(result)
} else {
//do something with result
print("Data returned")
print(result)
}
})
connection.start()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func style(){
self.email.layer.cornerRadius = 15;
self.password.layer.cornerRadius = 15;
self.uLoginButton.layer.cornerRadius = 15;
}
}
拡張のViewController:FBSDKLoginButtonDelegateスウィフト3において{
internal func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
// when the login is correct!
print("Success login!");
fetchProfile()
}
internal func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
FBSDKAppEvents.activateApp()
}
internal func loginButtonWillLogin(_ loginButton: FBSDKLoginButton!) -> Bool {
return true
}
}
こんにちは! これは正常に実行されます!しかし、私はデータ(電子メール、user_nameなど)を取得しないでください...私は "print(result)"でテストしていますが、返されたデータはありません –
その場合、facebookユーザーがいない可能性がありますあなたがグラフ要求を呼んでいる時点で。ユーザーがログインする前または後にこれを呼び出していますか? – DevKyle
コードの内容を編集して見てください。 –