#javascript #facebook #facebook-like
#javascript #Facebook #facebook-нравится
Вопрос:
Примерно в 90% случаев, когда я нажимаю на кнопку «Мне нравится» на своем веб-сайте, отображается ссылка подтверждения. Когда я нажимаю подтвердить, появляется всплывающее окно, и я нажимаю «Нравится». Однако ссылка подтверждения все еще существует, и мой лайк не был засчитан. Я нажал подтвердить несколько раз, но это все еще не работает. Я обновлял страницу много раз, и примерно в 10% случаев ссылка подтверждения никогда не появляется, и я могу поставить лайк обычно.
Я слышал о Facebook Linter (он же debugger). Я «переписал» свою страницу, и она мне все еще не может понравиться.
Вот пример страницы:http://linksku.com/news/funny/i-like-steve-jobs-less-and-less-the-more-i-read-about-him / (нижняя часть загружается в iframe).
Комментарии:
1. У меня работает каждый раз. Какой браузер вы используете?
2. Странно, это работает в Firefox. Я использовал Chrome. Я отключил все свои расширения в Chrome, и это все еще не работает.
3. Я также использую Chrome, это браузер, который я тестировал, и у меня абсолютно нет дополнений.
4. Это то, что я получил в Safari: «Новая кнопка Facebook Like в последнее время сильно глючит. Если вам не нравится эта статья, пожалуйста, нажмите здесь.»
5. Я использую Chrome и получил то же сообщение, что и leo.vingi
Ответ №1:
У вас нет пространства имен open graph, включенного в ваш html-тег. Это может вызвать странное поведение. Попробуйте обновить это, чтобы увидеть, улучшится ли что-нибудь. Пример того, как это должно выглядеть:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="https://www.facebook.com/2008/fbml">
смотрите документацию.
Ответ №2:
Загрузите Facebook SDK таким образом
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.init({ appId: '111111111111111', status: true, cookie: true, xfbml: true });
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
} ());
</script>
Ответ №3:
Это из-за перенаправления ссылки. Предположим, вы создаете кнопку, чтобы понравиться следующей ссылке:
http://example.com/abc.php?product=100
но когда кто-то открывает приведенную выше ссылку, введя в веб-браузере, они перенаправляются на следующую ссылку (просто приводя пример)
http://example.com/abc/def
Поэтому убедитесь, что вы указали правильную ссылку, которая должна понравиться, в кнопке like. Другими словами, если вы нажмете http://example.com/abc/def
на кнопку link, она не будет запрашивать подтверждение.