【问题标题】:Get Facebook profile picture from URL从 URL 获取 Facebook 个人资料图片
【发布时间】:2017-02-01 12:23:57
【问题描述】:

我想将个人资料图片从 Facebook 上传到 Firebase。我试过这个答案:Upload Facebook image URL to Firebase Storage 但是,Swift 在该答案的第三行代码上给了我错误。代码是:

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

Swift 告诉我:不能调用非函数类型的值 'Any?!'在我将代码更改为 Swift 一直建议我的内容之后:

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

当我想从 Facebook 检索个人资料图片时使用什么代码?我的目标是将其也存储到 Firebase 中,但这将在我首先获得个人资料图片之后进行。

【问题讨论】:

  • 你在使用 Swift 3 吗?
  • 你需要调用graph API。您使用什么来让用户登录 Facebook?

标签: swift url


【解决方案1】:

答案在 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")
        }


    }
})
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2017-06-14
    • 2014-06-24
    • 1970-01-01
    • 2013-11-20
    相关资源
    最近更新 更多