2

私はこの問題を解決するために数日を費やしましたが、成功しませんでした。問題は、ユーザーが「いいね」ボタンをクリックしても、壁にあるものが好きだということを示していないということです。コードはローカルホストでのテストセットアップでは正しく機能しますが、本番環境では機能しません。

私のクライアントは、WordPress用の画像ギャラリープラグインとFancyBoxと呼ばれるライトボックスプラグインを使用して、ユーザーがサムネイルをクリックしたときに画像のより大きなバージョンを表示しています。彼は私に、各ファンシーボックスにFacebookのようなボタンを追加するように依頼しました。

ファニーボックスは動的に生成されるため、ファンシーボックスがレンダリングされるたびに新しい「いいね」ボタンのiframeを生成します。いいねボタンのiframeで使用されるURLは、ユーザーがクリックした画像に固有のものです。このコードは、ギャラリーのURLに&photo = / location / of/photo.jpgを追加します。次に、カスタムURL全体がencodeURIComponent()を介して渡され、iframeに渡されます。

iframeの生成に使用されるコードスニペットは次のとおりです

var currentURL = document.URL,  
    currentIMG = $("#fancybox-img").attr("src").split("http://www.downsplash.com").pop();  
if (currentURL.match("&photo=")) {  
    var currentURL = currentURL.split("&photo=").shift();
};
var thisURL = encodeURIComponent(currentURL + "&photo=" + currentIMG);
<span id="fancybox-title-over">
    <div id="facebook-like" style="display:inline-block;">
        <iframe src="//www.facebook.com/plugins/like.php?href=" + thisURL + "&amp;send=false&amp;layout=button_count&amp;width=80&amp;show_faces=true&amp;action=like&amp;colorscheme=dark&amp;font&amp;height=21&amp;appId=314592468583405" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>  
    </div>
</span>

これは、本番環境で実行されているコードへのリンクです。

いいねボタンのコードは問題なく機能するようで、写真とは違って好きになれます。唯一の問題は、写真が高く評価されたときに、ユーザーの壁に何も表示されないことです。

ノート:

  1. カスタム&photo = / location / of / photo.jpgなしでベースURLのみを使用すると、すべてが正しく機能します
  2. ローカルホストでこのコードをテストすると、Facebookに投稿されます。

これらのいいねがユーザーのFacebookのウォールに表示されない理由はわかりません。誰かアイデアはありますか?

4

1 に答える 1

0

Heeraが指摘したように、プロダクションコードは機能していますが、Facebookがユーザーのウォールに投稿すると、&photo = / location / of/photo.jpgを含まないポートフォリオのURLが投稿されます。これは、FacebookにポートフォリオURLをフィードするOpenGraphメタタグがヘッダーにあり、それ以上のものがないために発生しています。

<meta property="og:url" content="http://www.downsplash.com/?portfolio=portraits">

ポートフォリオのURLが気に入っていたので、壁に投稿を表示できませんでした。実は、このオープングラフタグは、「Simple FacebookConnect」プラグインと「Tweet、Like、Google +、Share」プラグインの両方によってヘッダーに自動的に追加されます。これは、写真が気に入ったときにFacebookがローカルホストで開いているグラフタグをスキャンできなかったために、私のコードがローカルホストテストサイトで機能する理由も説明しています。

助けてくれてありがとう!

編集:

プラグインを無効にして、開いているグラフタグがhtmlで正しく表示されることを確認した後、Facebookが特定のURLの開いているグラフタグをキャッシュすることに関連する問題が発生しました。これにより、以前の誤ったURLリダイレクトが引き続き発生していました。FacebookのOpenGraphDebuggerにアクセスし、URLを入力することで、これを解決しました。これにより、Facebookはページの開いているグラフタグのキャッシュを更新します。

于 2012-02-13T03:29:23.583 に答える