Facebook API: починка сломавшейся кнопки «Нравится» на сайте
Вчера коллеги указали на сломавшуюся фейсбуковую кнопку «Нравится» на сайте.
Полез смотреть.
Результат очень печальный и странный:
- кнопка https://www.facebook.com/plugins/like.php сломалась
- панелька (та которая с лицами подписчиков) https://www.facebook.com/plugins/likebox.php работает
Вариантов три:
- сломали сами
- сломалось только у нас (типа вот такого — «Facebook Admin Page doesn’t load properly» когда нужно писать суппортам фейсбука и они за пару дней чинят)
- сломалось у всех
Проверил и отверг первый, волевым решением отбросил второй и начал работать исходя из третьего варианта.
Проверив несколько очевидных технических проблем с нашим сайтом и доступом к фейсбуку, иду проверять корректность работы самой кнопки. Мало ли там АПИ сломали или ещё что.
(скриншот сделан в Firefox и уже после исправления проблемы)
Открываю фрейм и смотрю нет ли ошибок в хедерах или яваскриптах
Глаз цепляется за шероховатость — http:// вместо https:// в адресе облайикваемой facebook-страницы, пальцы сами исправляют и…
Вывод:
Кнопка https://www.facebook.com/plugins/**like.php настроенная на facebook-страницу не работает только в случае если адрес страницы указан с http://, а не https://**
Осталось проверить, это баг или фича — изучаем поведение панельки (та которая с лицами подписчиков) https://www.facebook.com/plugins/likebox.php. Ведёт ли она себя так же как кнопка (работает только с https://) или нет.
Результат — она продолжает работать и с http:// и с https:// .
Вывод:
- сломался фейсбук (разное поведение там где должно быть универсально)
- чинить нам — просто заменив http:// на https:// в адресе лайкаемой facebook-странице
Полчаса на выявление проблемы, десять минут на исправление на всех затронутых сайтах. Проехали и забыли.
А утром оказывается, что проблема не только у нас. Это подтверждаем правильность первоначального выбора в пользу «сломалось у всех» и побуждает пойти писать этот текст.
P.S. Если эта проблема имеет другие проявления и решения, то пишите в комментариях. Буду дополнять текст.