Как установить имя пользователя в UITextField из результата FBSDKGraphRequest - PullRequest
1 голос
/ 22 мая 2019

Я использую Xcode 10, Swift 5 и пытаюсь установить для UITextField только имя пользователя, которое я получил с Facebook.Я успешно получил идентификатор, адрес электронной почты и имя в результате, но при отправке результата в текстовое поле включаются все три поля.Я просто хочу имя.

func getUserProfile() {
    let req = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"name"], tokenString: accessToken?.tokenString, version: nil, httpMethod: "GET")
    req?.start(completionHandler: { (connection, result, error : Error!) -> Void in
        if(error == nil)
        {
            print("\(String(describing: result))")
            self.FBUserName.text = "name \(String(describing: result))"
        }
        else
        {
            print("error \(String(describing: error))")
        }
    })
}

1 Ответ

1 голос
/ 22 мая 2019

Вы можете привести результат к [String : Any], вот так

if error != nil {
    print("Error: \(error!.localizedDescription)")
} else if let result = result as? [String : Any] {
    self.FBUserName.text = result["name"] as! String
}

Вот мой рабочий запрос

let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "email,name"])
graphRequest.start(completionHandler: { [weak self] (connection, result, error) -> Void in
    if error != nil {
        print("Error: \(error!.localizedDescription)")
    } else if let result = result as? [String : Any], let strongSelf = self {
        strongSelf.txtName.text = (result["name"] as! String)
        strongSelf.txtEmail.text = (result["email"] as! String)
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...