'daki FBSDKGraphRequest yanıt verileri nasıl işlenir FB en son SDK'yı (hızlı olmayan) entegre ettim ve oturum açma gayet iyi çalışıyor.Swift 3
Login button clicked
Optional({
"first_name" = KD;
id = 10154CXXX;
picture = {
data = {
"is_silhouette" = 0;
url = "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/XXXn.jpg?oh=a75a5c1b868fa63XXX146A";
};
};
})
Peki formatı i dönüştürmek olmalıdır: çıkışı ile
func configureFacebook()
{
login.readPermissions = ["public_profile", "email", "user_friends"];
login.delegate = self
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
print("Login buttoon clicked")
let graphRequest:FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"first_name,email, picture.type(large)"])
graphRequest.start(completionHandler: { (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
print("Error: \(error)")
}
else
{
print(result)
}
})
}
: i onun geçerli bir JSON
Çalışma kod beri Grafik yanıt verilerini ayrıştırmak nasıl bilmek gerekir Tüm URL veya first_name vb. değerleri almak için yukarıdaki verilerden yararlanın.
Ayrıca, NSDictionary öğesine dönüştüm ve hatayı aldım:
01 aşağıdaki gibifunc loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
print("Login buttoon clicked")
let graphRequest:FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"first_name,email, picture.type(large)"])
graphRequest.start(completionHandler: { (connection, result, error) -> Void in
if ((error) != nil)
{
print("Error: \(error)")
}
else
{
do {
let fbResult = try JSONSerialization.jsonObject(with: result as! Data, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary
print(fbResult.value(forKey: "name"))
} catch {
print(error)
}
}
})
}
ait &
Any
unwrapping. Benim için son kod. veri ver: [String: AnyObject] = sonuç olarak! [String: AnyObject] let urlData = data ["picture"] ?. değeri (forKey: "data") olarak! [String: AnyObject] let url = urlData ["url"]! –Daha önce olduğu gibi erişim profil resmini denedim, ancak şu anda info olsa da nil döndü: 'profilePictureURLStr = data [" picture.data.url "] olarak? String'. Ters giden birşey mi var. –
SwiftyJSON kullanıyor musunuz? –