Im travaillant sur un projet dans Swift 3.0 et j'ai une procédure d'inscription d'authentification en utilisant Facebook. Donc, fondamentalement, j'ai fait la partie intégration FB et une fois connecté à un compte en conséquence, je reçois l'adresse e-mail de l'utilisateur, nom, Id et l'URL de la photo de profil comme ci-dessous depuis que je les ai demandé (c'est ce que Je reçois dans ma console). Le format que je reçois comme ci-dessous.définir les résultats de l'intégration de facebook aux étiquettes
Optional({
email = "[email protected]";
id = xxxxxxxxxx;
name = "xxxxxx xxxx";
picture = {
data = {
"is_silhouette" = 0;
url = "https://scontent.xx.fbcdn.net/v/t1-1/c2.0.50.50/p50x50/10441341_10201209786847369_5426097469926927988_n.jpg?oh=1b4d8709be17338bc7e877d411b96eee&oe=58CE5B13";
};
};
})
Mon exigence est d'assigner ces champs d'email, de nom, d'identifiant aux étiquettes et de les imprimer.
Le code de mon contrôleur de vue pertinent ci-dessous. Que dois-je ajouter ??
import UIKit
import FBSDKLoginKit
class ViewController: UIViewController,FBSDKLoginButtonDelegate{
@IBOutlet weak var displayLabel: UILabel!
@IBOutlet weak var loginButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
let loginButton = FBSDKLoginButton()
view.addSubview(loginButton)
//frame's are obselete, please use constraints instead because its 2016 after all
loginButton.frame = CGRect(x: 16, y: 50, width: view.frame.width - 32, height: 50)
loginButton.delegate = self
loginButton.readPermissions = ["email", "public_profile"]
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("Did log out of facebook")
}
@IBAction func loginButtonPressed(_ sender: AnyObject) {
FBSDKLoginManager().logIn(withReadPermissions: ["email"], from: self) { (result, err) in
if err != nil {
print("Custom FB Login failed:", err)
return
}
print("FB login Sucess")
print(result?.token.tokenString)
self.showEmailAddress()
}
}
func showEmailAddress() {
FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "id, name, email,picture"]).start { (connection, result, err) in
if err != nil {
print("Failed to start graph request:", err)
return
}
print(result)
// self.displayLabel.text = result["email"]as? NSMutableArray
}
}
}
'résultat [" email "] as? NSMutableArray' pourquoi NSMutableArray? 'en tant que String', non? – Larme
en dépit de ce que vous avez mis il donne un message d'erreur disant «Type Any n'a aucun abonnement membres». C'est pourquoi j'ai commenté cette ligne monsieur. Je veux juste assigner ce résultat à l'étiquette car j'ai essayé et échoué – danutha
Vous devez dire au compilateur, que 'result' est un dictionnaire (dans notre cas:' [String: Any] '). – Larme