ios - 通过 Facebook Graph API 快速获取个人资料图片返回 "unsupported URL"

标签 ios facebook facebook-graph-api swift

我正在为 iOS 开发一个应用程序,用户应该使用 facebook 登录。所以我正在尝试获取用户个人资料图片,但以下代码返回 "unsupported URL"

FBRequestConnection.startWithGraphPath("\(userID)/picture?type=large&access_token=207613839327374|BgKi3AePtvg1oDO8GTbWqqLE_SM", completionHandler: { (connection, result, error) -> Void in
   if (error? != nil){
      NSLog("error = \(error)")
   }else{
      println(result)
   }
})

更新

以下更改:

FBRequestConnection.startWithGraphPath("\(userID)/picture?type=large", completionHandler: { (connection, result, error) -> Void in
  if (error? != nil){
    NSLog("error = \(error)")
  }else{
    println(result)
  }
})

正在返回:

error = Error Domain=com.facebook.sdk Code=6 "Response is a non-text MIME type; endpoints that return images and other binary data should be fetched using NSURLRequest and NSURLConnection" UserInfo=0x786d4790

最佳答案

你可以这样做:

    // 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")
            }


        }
    })
}

我使用的是 Xcode 6.4Swift 1.2

关于ios - 通过 Facebook Graph API 快速获取个人资料图片返回 "unsupported URL",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28333951/

相关文章:

ios - 自定义 MKAnnotation 标注气泡

c# - 使用 Facebook C# SDK 获取 friend 的事件太慢

iphone - 新的 Facebook IOS SDK?我们可以将旧 sdk 与新 sdk 一起使用吗?

facebook - 如何传递 Facebook 评论小部件的标题和图像?

java - Facebook SDK 阻止将字符串上传到 Firebase

ios - 转换为 ARC 时 NSMakeCollectable 出现问题

iphone - 如何使用 Xcode 4 在 xib 中设置对象标签?

iphone - 现在的 Modal ViewController 可以被认为是 ios 应用程序中弹出窗口的一种方式吗?

iphone - 我们可以使用 iOS 从我的应用程序更改 Facebook 帐户的封面图片吗?

php - 使用 webhook 获取 Facebook 线索广告的表单名称