2011-08-05 140 views
1

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

当我发布图像作为状态更新的一部分时,收到错误“无法完成操作(facebookErrDomain error 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

您不能再发布由Facebook托管的图片。从Stream Attachements上的Facebook Developers页面:

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

但是,你应该已经收到该错误是:

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

所以,这是不可能的。唯一的方法就是使用外部图像提供程序(与Instagram相同的机制基于此)。 – Punty

2

您可以通过使用“object_attachment”的标签,而不是“图片报”做到这一点。这将允许您使用您的相册中的图片作为时间轴或墙贴的图标。就拿上传的图片的ID随着越来越多的在这里- (void)request:(FBRequest *)request didLoad:(id)result

读返回:Attaching Existing Facebook Photos to Wall Posts

+0

看起来他们只允许用户专辑照片? [Fb post](http://developers.facebook.com/blog/post/526) 视频src图像怎么样?我似乎无法成功:( – Moozly

+0

我还没有试过视频,我会先确保第一篇文章到您的应用程序相册工作,然后使用您从第一个得到的objectID进行第二篇文章。 – mahboudz

+1

谢谢,但我没有尝试使用任何专辑中存在的图像...只有FB src图像我从视频对象获取链接... – Moozly