在Cocos2d-iphone V3中获取Facebook图片

时间:2014-03-27 07:30:27

标签: objective-c facebook-graph-api cocos2d-iphone

我正试图从Facebook获取个人资料图片,但我收到以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage stringByStandardizingPath]:

这是我的代码:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=square", userid]];
 NSData *data = [NSData dataWithContentsOfURL:url];
 UIImage *image = [UIImage imageWithData:data];
 //convert UIImage to CCSprite
 CCTexture *texture = [CCTexture textureWithFile:image];
 CCSprite *sprite = [CCSprite spriteWithTexture:texture];
 sprite.position = ccp(winWidth*.5, winHeight*.5);

UIImage *图像行中出现错误。

2 个答案:

答案 0 :(得分:2)

您的网址 用户ID 中的

无效,因此会收到此类错误。您必须输入您的用户ID才能获得图片。

输入您登录时获得的用户ID。

我的用户ID: 100002026455444

网址http://graph.facebook.com/100002026455444/picture?type=square

现在输入您的用户ID后运行该URL。你得到了你的照片。

代码:

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=square",userid]];
 NSData *data = [NSData dataWithContentsOfURL:url];
 UIImage *image = [UIImage imageWithData:data];
 //convert UIImage to CCSprite
 CCTexture *texture = [CCTexture textureWithFile:image];
 CCSprite *sprite = [CCSprite spriteWithTexture:texture];
 sprite.position = ccp(winWidth*.5, winHeight*.5);

答案 1 :(得分:1)

如果您打开the URL in a browser,您会发现这不是有效的图片网址。而是POST POST错误响应:

{
   "error": {
      "message": "(#803) Some of the aliases you requested do not exist: userid",
      "type": "OAuthException",
      "code": 803
   }
}

要从Facebook获取个人资料照片,您必须使用Facebook API。用户还需要授予您的应用访问她的个人资料照片的权限。