понедельник, 6 февраля 2012 г.

Боремся с кэшем Facebook

Фейсбук является сейчас самой популярной социальной сетью и не мудрено что нам, веб-разработчикам, хочется (либо приходится по чьему-то желанию) представить ресурсы там в наиболее выгодном виде. Допустим, мы решили сделать красивую кнопку с помощью нажатия которой открывается Фейсбучная шарилка (или лайкалка), позволяющая опубликовать у себя в ленте ссылку на ресурс, сопровождаемую небольшой картинкой и описанием.



Поставили мы этот линк, желаем проверить каков будет результат. А после нажатия видим, что, к примеру, вместо того thumbnail, который мы хотели бы видеть у нас используется первое попавшийся на странице изображение. Чешем репу, идем сразу читаем документацию, прописываем требуемые og:* meta-теги и пытаемся "расшарить" страничку снова. И что же мы видим? Что ничего абсолютно не изменилось, как будто Facebook не замечает наших изменений. Ответ прост: Facebook кэширует thumbnail и описание страницы для каждого URL.

Чтобы сбросить этот кэш Facebook есть два решения:
  1. Подсунуть для расшаривания немного видоизмененный URL, например, добавив GET-параметр: ?version=2. Этот путь не является идеальным, хотя позволяет добиться результата. Наиболее существенный недостаток проявляется когда на страничке установлены счетчики лайков: в этом случае счетчик будет считаться как для новой  страницы - с нуля.
  2. У Facebook есть отладчик Opeg Graph объектов. Он позволяет проверить какие данные возьмет Facebook для вывода при расшаривании, и распознать возможные ошибки, что собственно Facebook настоятельно рекомендует делать. Помимо этой полезной функции есть один side-effect: при проверке URL он сбрасывает Фейсбучный кэш. Так что в нашей ситуации это самое оптимальное решение возникшей проблемы.

Комментариев нет:

Отправить комментарий