Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios graphRequest.start不返回任何数据_Ios_Swift_Facebook Graph Api - Fatal编程技术网

Ios graphRequest.start不返回任何数据

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

我正在使用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: 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中,这是执行图形请求的方式

  • 初始化FBSDKGraphRequest
  • 初始化FBSDKGraphRequestConnection
  • 添加请求到请求连接
  • 启动连接
  • 所以


    你好这次跑步很好!但是,我不想获取数据(电子邮件、用户名等)。。。我正在使用“打印(结果)”进行测试,但是没有返回任何数据。在这种情况下,您调用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()