迅速。 Facebook个人资料图片返回问号?

时间:2016-03-11 16:17:49

标签: swift facebook profile-picture

好的,当我尝试收到用户个人资料图片时,图片会返回一个带有问号的白框?

继承我的代码:

func getProfilePic(fid: String) -> SKTexture? {
  let imgURL = NSURL(string: "http://graph.facebook.com/" + fid + "/picture?type=large")
  let imageData = NSData(contentsOfURL: imgURL!)
  let imageUI = UIImage(data: imageData!)
  let image = SKTexture(image: imageUI!)
  return image
}

func getFBUserData() {
  if((FBSDKAccessToken.currentAccessToken()) != nil) {
    FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email, picture"]).startWithCompletionHandler({ (connection, result, error) -> Void in
      if (error == nil){
        print(result)
        if let userData = result as? NSDictionary {
          personalUserID = userData["id"] as! String
        }
      } else {
        print("error")
      }
    })
  }
  picture.texture = getProfilePic("\(personalUserID)")

如何让它显示正确的图片?

1 个答案:

答案 0 :(得分:2)

我猜你的个人资料图片不适用于公众。现在您没有为请求提供访问令牌,因此请求被视为未经授权 - 因此您只能看到公众眼睛看到的内容。

修复它:

php processTextFile.php

此外,您还希望使用func getProfilePic(fid: String) -> SKTexture? { let imgURL = NSURL(string: "http://graph.facebook.com/" + fid + "/picture?type=large&access_token=" + FBSDKAccessToken.currentAccessToken().tokenString) let imageData = NSData(contentsOfURL: imgURL!) let imageUI = UIImage(data: imageData!) let image = SKTexture(image: imageUI!) return image } 和当前的API版本https来发出请求,否则当Facebook进行更改时,您的代码可能会在任何时候中断。所以,考虑到这一点:

v2.5

这应该可以解决问题。