it-swarm.com.ru

Кнопки «Нравится» и «Поделиться» на веб-странице вызывают предупреждения JavaScript и ошибку PHP

Я добавил основные кнопки "Мне нравится/Поделиться" на веб-странице, используя код, скопированный непосредственно со страницы разработчиков Facebook. Код состоит из 2 частей: блока javascript и тега div с классом "fb-like". Вот javascript:

<div id="fb-root"></div><script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

А вот тег div, где я хочу, чтобы кнопки появлялись:

<div class="fb-like" data-href="http://www.bethcake.com" data-width="90" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div>

Вот проблемы, с которыми я сталкиваюсь:

  1. Когда веб-страница загружается, я получаю 2 предупреждения javascript. Предупреждения относятся к исходному коду connect.facebook.net, строка 233, а не к любому написанному мной коду. Они есть:

    • Неверный идентификатор приложения: должна быть числовой или числовой строкой, представляющей идентификатор приложения.
    • FB.getLoginStatus () вызывается перед вызовом FB.init ().
  2. Также при загрузке страницы я получаю ошибку php (например, php.1: 948):

    Эта ошибка озадачивает. Прежде всего, я не использую фреймы. Во-вторых, протоколы совпадают, и здесь нет ничего о портах. Конечно, домены не совпадают: я не пытаюсь собрать лайки для страницы в Facebook; Я хочу получить лайки для внешней страницы сайта. Я что-то пропустил?

  3. Я проверил URL через отладчик объектов открытого графика Facebook. Это вызвало ряд предупреждений, которые я не понимаю. Они есть:

    • тэги fb: admins и fb: app_id отсутствуют.
    • og: title, og: type и og: image отсутствуют.
    • og: url, go: title, go: description и go: свойства изображения должны быть явно предоставлены

В порядке Хорошо. Но где и как я должен добавить это? Я просмотрел документацию Facebook и искал stackoverflow, но безуспешно. Если они должны быть добавлены в строку data-href в теге div, приведите пример.

12
Mark Lamprey

Я получал те же самые предупреждения javascript, которые вы упомянули в своей первой проблеме, и добавление параметра appId к URL-адресу в коде Facebook разрешило их обоих. Так что просто измените эту строку:

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";

в

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=1234567891234567";

Чтобы получить идентификатор приложения для Facebook, перейдите по адресу: https://developers.facebook.com/apps

11
smohadjer

Как указывалось выше @smohajer, вам нужно добавить appId, но с новым SDK вам нужно внести небольшие изменения, иначе вы увидите некоторые ошибки или предупреждения:

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=1234567891234567&version=v2.2";

Вам нужно будет обновить до 30 апреля 2015 года: https://developers.facebook.com/docs/apps/upgrading

2
infinity

Надеюсь, вы уже решили эту проблему.

Но если для кого-то это поможет, этот ответ поможет в том, что касается "FB.getLoginStatus ()", вызываемого перед вызовом FB.init () "-> https://stackoverflow.com/a/16593474

2
lol

Вот что сработало для меня (нашел мой ответ здесь http://developwithguru.com/solve-invalid-app-id-must-be-a-number-or-numeric-string-representing-the-application -id / )

1) перейдите на страницу разработчика 2) создайте новое приложение 3) получите идентификатор 4) примените идентификатор к своему коду..eg (js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId = 16digIdHere ";)

0
Ulysses Bravo