2017-02-01 2 views
0

Я хочу загрузить изображение профиля с Facebook на Firebase. Я пробовал этот ответ: Upload Facebook image URL to Firebase Storage Однако Swift дает мне ошибки в третьей строке кода этого ответа. Код:Получить изображение профиля Facebook с URL

let dictionary = result as? NSDictionary 
let data = dictionary?.object(forKey: "data") 
let urlPic = (data?.objectForKey("url"))! as! String 

Свифт говорит мне: не может вызывать значение нефункционного типа «Any ?!» после того, как я изменил код на то, что Swift продолжает предлагая мне:

let urlPic = ((data as AnyObject).object(ForKey: "url"))! as! String 

Что такое код, чтобы использовать, когда я хочу, чтобы получить фотографию из Facebook? Моя цель - также сохранить его в Firebase, но это произойдет после того, как я получу изображение профиля.

+0

Вы работаете в Swift 3? –

+0

Вам нужно вызвать API-интерфейс графика. Что вы используете для входа пользователя в Facebook? – dylanthelion

ответ

0

Ответ в Swift 1,2

Я взял ссылку here и реализованы также

Вы можете сделать это:

// accessToken is your Facebook id 
func returnUserProfileImage(accessToken: NSString) 
{ 
    var userID = accessToken as NSString 
    var facebookProfileUrl = NSURL(string: "http://graph.facebook.com/\(userID)/picture?type=large") 

    if let data = NSData(contentsOfURL: facebookProfileUrl!) { 
     imageProfile.image = UIImage(data: data) 
    } 

} 

Это способ, которым я получил Facebook ID:

func returnUserData() 
{ 
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil) 
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in 

    if ((error) != nil) 
    { 
     // Process error 
     println("Error: \(error)") 
    } 
    else 
    { 
     println("fetched user: \(result)") 

     if let id: NSString = result.valueForKey("id") as? NSString { 
      println("ID is: \(id)") 
      self.returnUserProfileImage(id) 
     } else { 
      println("ID es null") 
     } 


    } 
}) 
} 
Смежные вопросы