Facebook Like box - возможность лайкнуть текущую страницу, используя динамический URL - PullRequest
2 голосов
/ 30 января 2011

Я новичок в Facebook и пытаюсь добавить кнопку «Мне нравится в Facebook» на мой сайт. Из раздела для разработчиков в Facebook я получил следующий код для добавления кнопки «Мне нравится»:

<iframe src="http://www.facebook.com/plugins/likebox.php?href=http://www.mysite.com&width=292&colorscheme=light&show_faces=false&stream=false&header=false&height=62" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:62px;" allowTransparency="true"></iframe>

Теперь я хочу иметь возможность размещать кнопку «Мне нравится» на каждой странице моего сайта. По этой причине я думаю, что использование статической ссылки в приведенном выше коде будет бесполезным. Следовательно, у меня есть собственная функция, которая заполняет URL текущей страницы (включая любые переменные, которые могут присутствовать в URL) в константу с именем: CURRENT_URL

Итак, мой исправленный код кнопки «Мне нравится» выглядит следующим образом:

<iframe src="http://www.facebook.com/plugins/likebox.php?href=<?php echo CURRENT_URL; ?>&width=292&colorscheme=light&show_faces=false&stream=false&header=false&height=62" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:62px;" allowTransparency="true"></iframe>

Когда я использую приведенный выше пересмотренный код на своем веб-сайте, я не вижу поля «Мне нравится». Вместо этого я вижу страницу ошибки в Iframe, которая гласит:

The page you requested was not found.
You may have clicked an expired link or mistyped the address. Some web addresses are case sensitive.

Если я делаю общий <?php echo CURRENT_URL; ?, он показывает правильный URL. Нет проблем со значением константы. Это заставляет меня чувствовать, что iframe просто пытается загрузить имя веб-сайта без анализа постоянного значения. Мне просто нужен код, который я могу использовать на всем веб-сайте без необходимости вручную изменять значение кнопки «Нравится» для каждой из страниц моего веб-сайта.

Итак, мой вопрос:

Как сделать так, чтобы этот iframe обнаруживал URL текущей страницы (включая любые переменные, которые я могу передавать через URL) и заполнял значение URL кнопки «Мне нравится» в URL текущей страницы, чтобы пользователю могла понравиться эта страница.

Вся помощь приветствуется. Спасибо.

ОБНОВЛЕНИЕ (Решение):

Я узнал, что во всем этом большая путаница. На самом деле есть 2 типа функций лайков. Одна - обычная кнопка «Мне нравится», а другая - «Мне нравится». Вот ссылки:

Кнопка «Мне нравится»: http://developers.facebook.com/docs/reference/plugins/like

Like Box: http://developers.facebook.com/docs/reference/plugins/like-box

Используйте код кнопки Like , если вы хотите, чтобы людям нравились отдельные страницы вашего сайта. Поле Like Box запрашивает: URL страницы Facebook. Это означает, что вы НЕ МОЖЕТЕ использовать его, чтобы ваши пользователи могли лайкать ваши веб-страницы. (Я все еще работаю над пониманием URL страницы Facebook и как она работает и когда она не работает)

Надеюсь, эта информация поможет кому-нибудь еще пережить те же проблемы и замешательство.

Ответы [ 2 ]

3 голосов
/ 30 января 2011

Вы можете просто повторить кнопку «Мне нравится», и у вас не будет таких проблем - что-то вроде этого:

function likeButton($url_to_like, $action = "like") {
    return sprintf('<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="%s" show_faces="true" width="450" action="%s"></fb:like>',
$url_to_like, $action);
}

Я использую версию javascript, но то же самое с iframe:)

0 голосов
/ 04 мая 2012

Использование этой функции - отличная идея.У нас есть та же проблема на нашем сайте, посмотрите на нее здесь ( TAPNET Online Backup ), потому что мы используем общий фрагмент кода для всех страниц в правой боковой панели.Я попытался удалить значение в href="", и оно должно вытягивать текущий URL, потому что оно работает.Я вижу те же #, что и раньше, и когда мне нравятся любые страницы, которые не понравились до увеличения числа, как ожидалось.Попробуйте это.

...