2

Я провел несколько дней, пытаясь решить эту проблему без успеха. Проблема в том, что когда пользователь нажимает на подобную кнопку, он не указывает, что им нравится что-либо на их стене. Хотя код работает правильно в моей тестовой настройке на localhost, он не работает в производстве.Как действие, которое не отображается на стене пользователя

Мой клиент использует плагин галереи изображений для wordpress и плагин lightbox, известный как FancyBox, для отображения более крупных версий изображений, когда пользователь нажимает на миниатюру. Он попросил меня добавить фейсбук как кнопку для каждого fancybox.

Поскольку fanyboxes динамически сгенерированы, я генерирую новую, например, кнопку iframe всякий раз, когда отображается fancybox. URL-адрес, используемый аналогичной кнопкой iframe, уникален для изображения, на которое кликнул пользователь. Код добавляет & фото =/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 + "&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> 

Here is a link to the code running in production.

Подобное код кнопки, кажется, работает без сучка и задоринки, это позволяет вам понравиться и в отличие от фотографий. Единственная проблема заключается в том, что когда фотография нравится, на стене пользователя ничего не появляется.

Примечания:

  1. Все работает корректно при использовании только базовый URL без обычая & фото =/местоположение/из/photo.jpg
  2. При тестировании этого кода на локальном хосте это ДЕЙСТВИТЕЛЬНО отправлять сообщения в Facebook ,

Я не уверен, почему эти симпатии не отображаются на стене Facebook пользователей. У кого-нибудь есть идеи?

+0

Получил ли клиент разрешение на публикацию на стене? – Chriseyre2000

+0

Поскольку я просто использую facebook как кнопка iframe, разрешение не требуется. Я не пытаюсь размещать пользовательскую информацию на стене пользователя. Просто тот факт, что им понравилось то, что должно автоматически обрабатываться facebook. –

+0

Это сработало, но мне понравилась фотография ребенка, но на моей временной шкале была размещена чужая фотография. –

ответ

0

Как указано Heera, рабочий код работает, но когда Facebook публикует к стене пользователя, он размещает URL-адрес портфолио НЕ включая & photo =/location/of/photo.jpg. Это происходит потому, что в заголовке есть метатег Open Graph, который передает Facebook портфолио URL и ничего больше.

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

Я не мог видеть сообщение на стене, так как мне уже понравился URL-адрес портфолио. Как оказалось, этот открытый тег графа автоматически добавляется в заголовок как плагинами «Simple Facebook Connect», так и «Tweet, Like, Google+ и Share». Это также объясняет, почему мой код работает на моем локальном тестовом сайте, потому что Facebook не мог сканировать локальный хост для открытых графических меток, когда мне понравилась фотография.

Спасибо за помощь!

Edit:

После того как я отключил плагины и убедилась мой открытый график теги отображаются правильно в HTML, я испытал проблемы, связанные с Facebook кэширования открытых тегов графика для данного URL. Это привело к тому, что предыдущее неправильное перенаправление URL-адресов продолжалось. Я разрешил это, посетив Facebook's Open Graph Debugger и указав URL. Это заставляет Facebook обновлять кеш открытых тегов на странице.

+1

Привет, Нейт. Можете ли вы рассказать мне, как вы решили решить эту проблему? Я фактически использую аналогичный код для одного у вас есть (тот, который поставляется с fancybox), и я даже использую карусель большого пальца под основным изображением. Хотя я должен сделать динамический метатег og: url динамическим, но не смог заставить его работать. – cbarg