Я потратил несколько дней, пытаясь решить эту проблему без успеха. Проблема в том, что когда пользователь нажимает кнопку «Мне нравится», это не означает, что ему что-то нравится на своей стене. Хотя код корректно работает на моей тестовой установке на локальном хосте, он не работает в рабочей среде.
Мой клиент использует плагин галереи изображений для WordPress вместе с плагином лайтбокса, известным как FancyBox, для отображения больших версий изображений, когда пользователь нажимает на миниатюру. Он попросил меня добавить кнопку в стиле «фейсбук» к каждой фантазии.
Поскольку fanyboxes генерируются динамически, я генерирую новую кнопку like iframe всякий раз, когда отображается fancybox. URL-адрес, используемый кнопкой iframe, уникален для изображения, на которое нажимает пользователь. Код добавляет & photo = / location / of / photo.jpg к URL галереи. Затем весь пользовательский 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>
Вот ссылка на код, работающий в производстве.
Код кнопки «Мне нравится», кажется, работает без сбоев, он позволяет вам любить и отличать фотографии. Единственная проблема заключается в том, что когда фотография нравится, на стене пользователя ничего не появляется.
Примечания:
- Все работает правильно, когда используется только базовый URL без
custom & photo = / location / of / photo.jpg
- При тестировании этого кода на локальном хосте он ОТПРАВЛЯЕТСЯ на Facebook.
Я не уверен, почему эти лайки не отображаются на стене пользователя в Facebook. У кого-нибудь есть идеи?