iOS上的Facebook连接 - 图片不显示墙贴

时间:2011-03-27 10:35:03

标签: iphone objective-c ios facebook

我使用Facebook提供的演示项目设置Facebook连接我的应用程序。一切都很好,除了最后一小步......

  • 首先,我登录并获得权限。

  • 接下来,我上传了一张图片。这很好用,我可以在我的Facebook相册中看到我应该能够的图片。

  • 上传这张照片时,我会得到它的网址(由FBRequest代表返回)。将此URL粘贴到Web浏览器中会直接将我带到图像中,因此我知道此URL正确无误。

以下是问题所在:

  • 我现在想把这张照片放在一个墙柱上。墙贴很好,但图片似乎没有附加,状态保留为纯文本消息。

这是我在最后一部分使用的代码:

- (void)request:(FBRequest *)request didLoad:(id)result {

    NSString* picUrl = [result objectForKey:@"src_big"];  //this definitely returns the right URL

    if (picUrl)
    {
        NSString *message = @"Test status";
        NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                       message, @"message", picUrl, @"picture", @"Look at my photo", @"name", nil];

        [facebook requestWithMethodName:@"facebook.Stream.publish" andParams:params
                          andHttpMethod:@"POST" andDelegate:self];
    }
}

任何想法我缺少或做错了什么?

2 个答案:

答案 0 :(得分:20)

使用以下代码修复(在尝试失败很多次之后)。 Facebook不喜欢我尝试它的方式,你只需一步就可以完成所有这些:

NSData *imageData = UIImagePNGRepresentation(image);

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"Test message", @"message", imageData, @"source", nil];

[facebook requestWithGraphPath:@"/me/photos" andParams:params andHttpMethod:@"POST" andDelegate:self];

答案 1 :(得分:1)

无法发表评论但为了让这项工作得以实现,我必须将@“/ me / photos”更改为@“me / photos”,这是乔丹在上面的回答。但是非常有帮助,不知道为什么会被投票。