2011-09-09 74 views
3

試圖發佈圖像以及牆貼可以使用以下代碼正常工作幾個月。突然它停止工作。圖像不能在FB.ui中工作

當我用https測試它不起作用,但在http中它起作用。

如果協議爲https,則APP URL使用https,否則使用http。

$protocol = "http"; 
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']!="off") 
    $protocol = "https"; 

define("CANVAS_URL","$protocol://apps.facebook.com/appname/"); 
define("APP_URL","$protocol://domain.com/content/appname/live/"); 

FB.ui(
     { 

     method: 'feed', 
     name: 'my app name', 
     link: <? echo "'".CANVAS_URL."'";?>, 
     picture: <? echo "'".APP_URL."'";?>+image, 
     caption: _caption, 
     description: _description 
     }, function(response) { 
     if (response && response.post_id) 
     { 
      // published 
     } else { 
      // not published 
     } 
     } 
    ); 

回答

6

嘗試不使用SSL URL來獲取圖像(但仍將其用於鏈接的CANVAS_URL)。 Facebook代理向用戶展示的圖片請求,因此即使您從非SSL網址提供圖片,Facebook中使用的圖片也會通過SSL與用戶展示。

至於爲什麼SSL URL不起作用,可能是由Facebook使用的抓取工具檢索圖像無法識別您正在使用的證書鏈。你在瀏覽器中對我的工作很好,但是在Linux命令行上通過wget進行檢索時(可能與瀏覽器相比FB的搜索器更接近環境),因此無法驗證證書。

+0

我試圖與指定圖像URL: HTTP://url/to/image/image.png 和也相類似: 圖像/ image.png 沒有他們的下HTTPS工作它顯示了一個薄的灰但不顯示圖像。 我沒有看到要將圖像加載到螢火蟲上的請求。 –

+0

奇怪 - 在您通過HTTP加載頁面本身時,請求是否完全相同,但不是HTTPS? –

+0

我想這裏可能會有一個bug,但是在https://www.nytimes.com時這個工作正常:'FB.ui({'method':'feed','picture':'http:/ /i1.nyt.com/images/2011/09/18/nyregion/18ADOPT1_SPAN/18ADOPT1_SPAN-hpMedium.jpg','link':'https://shadowytree.com/stsite/'})' –

1

我在頁面上的四個Feed帖子中有兩個與Black Knight具有相同的「細灰色條」。
我拿出https://開頭,現在所有工作正常...

是......
圖片: 'https://mysite.com/images/' +圖像,
現在。 ..
圖片:'mysite.com/images/'+圖片,

1

我剛剛發現的一件事,圖片尺寸似乎也起了一定的作用。我的照片網址是原始的全尺寸jpg。它沒有顯示。但是當我鏈接到一個更小的版本,然後它顯示!

+0

該解決方案也適用於我。 –