2011-09-09 17 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以外のURLからサービスを提供しても、Facebookで使用される画像はSSL経由でユーザーに届きます。

なぜSSL URLが機能しないのかについては、Facebookが画像を取得するために使用するクローラが、使用している証明書チェーンを認識しないことが考えられます。あなたのブラウザはうまくブラウザで動作しましたが、Linuxのコマンドラインでwget経由で取得すると(ブラウザよりもFBのクローラに近い環境かもしれません)、証明書を検証できません。

+0

私は画像のURLを指定してみました: ます。http: とも同様の相対を//url/to/image/image.png:それらの 画像/ image.png どれも、それは薄い灰色を示します。httpsの下で働いていません画像は表示されません。 Firebugでイメージを読み込む要求が表示されません。 –

+0

Strange - HTTPSではなくHTTPでページ自体を読み込んでいるときと全く同じフィードリクエストが機能しますか? –

+0

私はここにバグがあると思いますが、これは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

私は自分のページにある4つのフィードのうち2つに黒い騎士と同じ「薄い灰色のバー」を持っていました。
は私がhttps取り出し://を、今、すべてが正常に動作...

は...
画像: 'https://mysite.com/images/' +画像、今
。 ..
画像: 'mysite.com/images/' +画像、

1

私が発見したことの1つは、画像サイズも役割を果たしているようです。私の画像のURLはオリジナルのフルサイズのjpgになっていました。そして、それは表示されませんでした。しかし、私ははるかに小さなサイズのバージョンにリンクした後、それが示した!

+0

この解決策も私のために働いた。 –

関連する問題