发布Facebook状态,包括Facebook上已有照片的链接

时间:2011-08-05 16:21:51

标签: ios facebook facebook-graph-api

我正在尝试使用Facebook iOS API发布Facebook状态更新,其中包含消息和指向Facebook上已有照片的链接。我已经使用另一个图形API调用的结果获取了图像的URL。我已经将应用程序设置为拥有read_stream,publish_stream,offline_access和user_photos的权限。

当我将图像作为状态更新的一部分发布时,我收到错误“操作无法完成。(facebookErrDomain错误10000.)”。但是,如果我尝试发布尚未在Facebook上显示的图像,则状态更新会正常发布并显示图像。

这很奇怪,好像我试图通过发布到我的墙上的Facebook在网上做同样的事情,我可以包含一个链接到Facebook中的图像,这可以正常工作。

我是否在尝试在Facebook中添加图片时出错了?我正在使用的电话是:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"CIAO",@"message",
                               @"http://photos-g.ak.fbcdn.net/hphotos-ak-snc6/<rest_of_the_image_url>.jpg", @"picture",
                               nil];

[_facebook requestWithGraphPath:@"me/feed"
                      andParams:params
                  andHttpMethod:@"POST"
                    andDelegate:self];

我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

您无法再发布Facebook托管的图片。来自Stream Attachements上的Facebook开发者页面:

  

不要引用fbcdn.net域上托管的图像。与这些URL相关联的图像并不总是针对流故事进行优化,偶尔会导致错误,从而导致糟糕的用户体验。确保您的流附件不使用此域引用图像。您应该在本地托管图像。

但是,您应该收到的错误是:

{
  error: {
    type: "OAuthException",
    message: "(#100) FBCDN image is not allowed in stream: http://graph.facebook.com/100001717292608/picture",
  }
}

答案 1 :(得分:2)

您可以使用“object_attachment”标记而不是“图片”来执行此操作。这样您就可以将相册中的图片用作时间轴或墙贴的图标。只需获取- (void)request:(FBRequest *)request didLoad:(id)result

中返回的已上传图片的ID即可

在此处阅读更多内容:Attaching Existing Facebook Photos to Wall Posts