2013-05-04 106 views
1

我想用RestFB在我的Facebook頁面上發佈帖子。RestFB - 圖片網址格式不正確

我的代碼如下:

FacebookType publishResponse = facebookClient.publish(pageId + "/feed", FacebookType.class, 
       Parameter.with("message", message), 
       Parameter.with("picture", picture), 
       Parameter.with("link", link), 
       Parameter.with("description", description)); 

我的參數有以下值:

message: Test+test+test 
picture: https%3A%2F%2Fcom-smallteaser-local-photo.s3.amazonaws.com%2Fskydivemag%25232fdefcfa-c7b2-4c0d-8504-9942ccd9a4b0%2523648%25230%25232592%25232592%2523292%2523292 
link: http%3A%2F%2Flocalhost%3A9000%2Farticle%2F20130503-test-test-test 
description: This+is+just+a+test 

我得到異常:

FacebookOAuthException:收到的Facebook的錯誤響應鍵入OAuthException:(#100)圖片URL格式不正確]

我看過here,我可以通過提供一個URL來添加圖片,並且明確表示它是用於'將應用程序託管在Amazon S3或類似服務上的應用程序開發者'。

任何想法我做錯了什麼?

回答

0

我認爲這是不實際的圖片URL的「格式化」,但內容則返回:

https://com-smallteaser-local-photo.s3.amazonaws.com/skydivemag%232fdefcfa-c7b2-4c0d-8504-9942ccd9a4b0%23648%230%232592%232592%23292%23292

Content-Type: application/octet-stream響應報頭(as you can see here)交付 - 這可能使Facebook的刮板認爲這不是一個真正的圖像資源。

所以你將不得不弄清楚如何配置你的主機空間來提供這些圖像與正確Content-Type,例如img/jpegimg/png

+0

謝謝!我會解決這個問題並再次測試。請讓你發佈... – stikkos 2013-05-05 12:39:41

+0

好吧,所以我現在正在使用圖片https://com-smallteaser-local-photo.s3.amazonaws.com/skydivemag%2317fae067-0a4e-4be4-b09e-8330df7e97b0%23648%230 %232592%232592%23292%23292但我得到完全相同的錯誤,所以我猜別的東西一定是錯的? – stikkos 2013-05-05 14:38:08

0

我得到了這個問題,但只在舊的Android設備上,而不是在桌面上。我可以在服務器日誌中看到,有一個區別:

  • 當訪問桌面的URL,Facebook的確實請求圖片的URL。
  • 當訪問較舊的Android設備的URL時,Facebook 不會請求圖片URL

原來我是在構建絕對URL,它根據http://www.hyperink.com/blog/?p=18僅適用於使用的Webkit window.location.origin。它通過更換得到解決,作爲後表明,

window.location.origin 

通過

window.location.protocol + 「//」 + window.location.hostname