2011-08-05 137 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