私はこの問題を解決するために数日を費やしましたが、成功しませんでした。問題は、ユーザーが「いいね」ボタンをクリックしても、壁にあるものが好きだということを示していないということです。コードはローカルホストでのテストセットアップでは正しく機能しますが、本番環境では機能しません。
私のクライアントは、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 + "&send=false&layout=button_count&width=80&show_faces=true&action=like&colorscheme=dark&font&height=21&appId=314592468583405" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px;" allowTransparency="true"></iframe>
</div>
</span>
いいねボタンのコードは問題なく機能するようで、写真とは違って好きになれます。唯一の問題は、写真が高く評価されたときに、ユーザーの壁に何も表示されないことです。
ノート:
- カスタム&photo = / location / of / photo.jpgなしでベースURLのみを使用すると、すべてが正しく機能します
- ローカルホストでこのコードをテストすると、Facebookに投稿されます。
これらのいいねがユーザーのFacebookのウォールに表示されない理由はわかりません。誰かアイデアはありますか?