Ios graphRequest.start不返回任何数据
我正在使用FacebookSDK使用Swift 3登录iOS 这是我的密码。问题是没有返回值Ios graphRequest.start不返回任何数据,ios,swift,facebook-graph-api,Ios,Swift,Facebook Graph Api,我正在使用FacebookSDK使用Swift 3登录iOS 这是我的密码。问题是没有返回值 import UIKit 类ViewController:UIViewController{ @IBOutlet weak var email: UITextField! @IBOutlet weak var password: UITextField! @IBOutlet weak var uLoginButton: UIButton! let loginButton: FBSDKLoginBut
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;
}
}
扩展视图控制器:FBSDKLoginButtonDelegate{
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
}
}在Swift 3中,这是执行图形请求的方式
你好这次跑步很好!但是,我不想获取数据(电子邮件、用户名等)。。。我正在使用“打印(结果)”进行测试,但是没有返回任何数据。在这种情况下,您调用graph request时可能没有facebook用户。您是在用户登录之前还是之后调用此函数?方法是在单击按钮时调用此函数。由于没有字段类型“picture.type(large)”,因此该函数可能不会返回任何内容。尝试不使用它的图形请求。此处列出了可用字段的列表:
let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields" : "email"])
let connection = FBSDKGraphRequestConnection()
connection.add(graphRequest, completionHandler: { (connection, result, error) in
if error != nil {
//do something with error
} else {
//do something with result
}
})
connection.start()