Facebook Open Graph не очищает кеш

У меня проблемы с метатегами в Open Graph. Кажется, что Facebook кеширует старые значения моих метатегов. Старые значения атрибутов og:title и og:url все еще используются, хотя я их уже изменил.

Я запустил Lint на странице своего сайта, и на экране появилось следующее:

Скриншот линта Facebook Open Graph

Обратите внимание, что есть два значения для og:title и og:url, причем преобладает последнее. Однако Последние две записи - это СТАРЫЕ записи, которые я использовал для этого сайта. Сейчас я использую эти метатеги (вы можете проверить, просматриваете ли вы исходный код HTML):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

Почему Facebook кеширует og:title и og:url? Кто-нибудь сталкивается с такой же проблемой?


person Ardee Aram    schedule 25.04.2011    source источник
comment
Полагаю, это как история? Я вижу, что FB получает для вас самые свежие title и url (в информационной таблице), так зачем беспокоиться?   -  person ifaour    schedule 25.04.2011
comment
Проблема в том, что счетчик лайков facebook по-прежнему для СТАРОГО og: url (pinq.dk), который составляет около 200+ , в отличие от подсчета для pinq.dk/tilbud/landsdaekkende/lissy   -  person Ardee Aram    schedule 25.04.2011
comment
и я не думаю, что это история. Больше og: url (предположительно) устанавливается дважды, последний из которых преобладает. Каким-то образом старые значения, которые уже удалены из кода, по-прежнему влияют на мета-значения.   -  person Ardee Aram    schedule 25.04.2011
comment
Итак, прочтите это. Особенно раздел Редактирование мета-тегов. Я не уверен, связано ли это, но это может помочь. Позже проверим, извини, дружище!   -  person ifaour    schedule 25.04.2011
comment
Наверное, так. Вы можете обновить атрибуты своей страницы, обновив теги ‹meta› своей страницы. Обратите внимание, что og: title и og: type доступны для редактирования только изначально - после того, как ваша страница получит 50 лайков, заголовок станет фиксированным, а после того, как ваша страница получит 10 000 лайков, тип станет фиксированным. Эти свойства зафиксированы, чтобы не удивлять пользователей, которым уже понравилась страница. Изменение тегов заголовка или типа после достижения этих ограничений ничего не дает, ваша страница сохраняет исходный заголовок и тип .. Спасибо ifaour!   -  person Ardee Aram    schedule 25.04.2011
comment
Поскольку это ответ с наибольшим количеством голосов, опубликую здесь решение (2016 г.): В отладчике URL-адресов перейдите вниз и нажмите: Очистить через API.   -  person Mike Gleason jr Couturier    schedule 02.09.2016
comment
Как ты это делаешь? @MikeGleasonjrКутюрье   -  person Daniel Springer    schedule 02.06.2017
comment
На сегодняшний день у меня не работал ни один из существующих ответов.   -  person Daniel Springer    schedule 02.06.2017
comment
Это мое решение, оно отлично работает для меня ...: stackoverflow.com/questions/6693499/   -  person maPer77    schedule 09.04.2021
comment
Это мое решение, оно отлично работает для меня ... stackoverflow.com/questions/6693499/   -  person maPer77    schedule 09.04.2021


Ответы (22)


  1. Перейдите на страницу http://developers.facebook.com/tools/debug.
  2. Введите URL-адрес, следующий за fbrefresh=CAN_BE_ANYTHING

Примеры:

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. ИЛИ посетите: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

У меня была такая же проблема прошлой ночью, и я получил это решение с какого-то веб-сайта.

Facebook сохраняет миниатюру кеша. Он не будет обновляться, даже если вы удалите миниатюру / изображение со своего сервера. Но Facebook позволяет вам обновляться, используя fbrefresh

Надеюсь, это поможет.

person P.C.    schedule 08.10.2011
comment
param fbrefresh может не понадобиться, поскольку инструмент отладки обновляет объект без него. - person alexandru.topliceanu; 26.03.2012
comment
Он не очищает кеш, если вы не используете этот параметр. - person Umur Kontacı; 07.09.2012
comment
Неправда, добавление этого параметра не влияет на работу инструмента отладки - нет никакой ссылки на этот параметр в инструменте отладки или коде парсера. - person Igy; 21.09.2012
comment
Нет необходимости использовать параметр fbrefresh, но вам необходимо войти в систему как администратор приложения FB, которому принадлежит этот домен, иначе кеш не будет обновлен. - person Felipe Brahm; 04.10.2012
comment
Уверены ли вы? есть ли ссылка, в которой говорится, что вы должны войти в систему как администратор, чтобы очистить кеш facebook? - person shem; 05.10.2012
comment
с добавленным fbrefresh вы просто даете отладчику объекта другой URL-адрес для кеширования, если вы вернетесь к рассматриваемому URL-адресу, он все тот же - person Question Mark; 06.03.2013
comment
Мне нужно было использовать этот параметр для обновления моего кеша, и помните, что вам может потребоваться менять его каждый раз, то есть? Refresh = 1,? Refresh = 2,? Refresh = 3 и т. Д. - person Ric; 14.03.2013
comment
Я просто использовал? Fbrefresh = 99999999, вообще не будучи администратором, и он обновился. - person keo; 23.05.2013
comment
Я могу убедиться, что добавление параметра fbrefresh сработало для меня. Если я поделился URL-адресом, он использовал старые данные, хотя отладчик отображал правильные данные. Но как только я использовал отладчик с параметром fbrefresh, даже обычные общие ресурсы использовали правильные данные. - person ice cream; 18.08.2013
comment
В моем случае он не обновляет кеш. Я имею в виду, что для платежных продуктов он по-прежнему использует кешированный .. - person Igor; 29.01.2014
comment
По моему опыту, инструмент отладки НЕ обновлял кэшированный объект без использования fbrefresh, а обновлял данные по исходному URL-адресу после использования fbrefresh. Это коснулось и обыкновенных акций. - person greg_1_anderson; 08.03.2014
comment
fbrefresh у меня не работает, у facebook все еще старый кеш. - person Tyguy7; 14.06.2014
comment
У меня это сработало при явном запуске для общих целей 'href'. Не уверен, нужен ли админ. - person Manuel Arwed Schmidt; 26.06.2014
comment
не освежил для меня - person JinSnow; 27.06.2014
comment
У меня это не работает. Скребок показывает новую информацию, но участник по-прежнему передает старую. Есть обновления по этому поводу? - person Peege151; 04.04.2016
comment
Теперь вы также можете использовать кнопку Очистить снова, чтобы очистить и повторно кэшировать ссылку: developers.facebook.com/tools/debug/sharing/. - person Aron; 12.01.2017
comment
Facebook также недавно добавил средство аннулирования пакетного кеша: developers.facebook.com/tools/debug/ совместное использование / партия - person Aron; 12.01.2017
comment
Добавление ?anything заставляет его выглядеть так, как будто это работает. На самом деле повторное тестирование обычного URL-адреса даст те же старые результаты. - person Daniel Springer; 02.06.2017
comment
Для тех, кто использует Wordpress: очистите кеш в плагине кеширования, таком как W3 Total Cache или Varnish, прежде чем выполнять эти шаги. У меня это сработало только так. - person Elliott Davies; 14.01.2018

Вопрос, получивший наибольшее количество голосов, устарел:

Это единственные 2 варианта, которые следует использовать по состоянию на ноябрь 2014 г.:

Для не разработчиков

  1. Используйте отладчик FB: https://developers.facebook.com/tools/debug/og/object
  2. Вставьте URL-адрес, который вы хотите повторно кэшировать. (Убедитесь, что вы используете тот же URL, что и в теге og: url)
  3. Еще раз нажмите кнопку "Получить информацию о цикле".

Разработчикам

  1. Выполните программный вызов GET по этому URL-адресу: https://graph.facebook.com/?id=[YOUR_URL_HEREvisible&scrape=true (см .: https://developers.facebook.com/docs/games_payments/takingpayments#scraping)
  2. Убедитесь, что тег og: url в заголовке на этой странице совпадает с тем, который вы передаете.
  3. вы даже можете проанализировать ответ json, чтобы узнать количество долей этого URL-адреса.

Дополнительная информация об обновлении изображений

  • Если URL-адрес og: image остается прежним, но изображение фактически изменилось, оно не будет обновляться и повторно использоваться парсерами Facebook, даже если они выполняются выше. (даже передача? last_update = [TIMESTAMP] в конце URL-адреса изображения у меня не сработала).
  • Единственный эффективный обходной путь для меня - присвоить изображению новое имя.

Примечание относительно обновлений изображений или видео в ранее опубликованных сообщениях:

  • Когда вы вызываете отладчик для отмены изменений в тегах og: вашей страницы, все предыдущие акции Facebook этого URL-адреса по-прежнему будут показывать старое изображение / видео. Невозможно обновить все предыдущие сообщения, и это сделано специально из соображений безопасности. В противном случае кто-то сможет притвориться, что пользователь поделился чем-то, чего он на самом деле не делал.
person Oriol Esteban    schedule 24.11.2014
comment
Кажется, он не возвращает количество репостов для моей страницы. Я прочитал в этом сообщении: stackoverflow.com/questions/3581488/, для которого вам нужна кнопка Facebook Like / Share на странице, чтобы вывод этой конечной точки содержал любую информацию . - person WillyBurb; 17.02.2015
comment
убедитесь, что теги находятся в HEAD, а не в BODY вашей страницы - отладчик предупредит вас об этом, но они будут проигнорированы (да, я знаю, что вы упомянули это, я просто хотел подчеркнуть это) - person Simon_Weaver; 10.08.2015
comment
@Oriol Esteban вы нашли другие способы обновления изображений? - person Petr; 10.09.2015
comment
Решено. Я решил это, добавив? T = TIMESTAMP к URL-адресу моего изображения в php-скрипте, где мы генерируем теги. Пока это работает. - person Petr; 10.09.2015
comment
Спасибо, мужик!! Я потратил часы, пытаясь исправить это, и проблема заключалась в том, что URL-адрес, который я передавал, не совпадал. Документация FB смутила меня там, и я понял, что атрибут URL должен быть корневым. +1 для вас! - person Cynthia Sanchez; 22.09.2015
comment
@Oriol Когда я недавно попробовал это, мне пришлось отправить сообщение POST на этот URL (согласно developers.facebook.com/docs/sharing/opengraph/) - person Glen T; 29.10.2015
comment
Любые идеи о том, как поцарапать кеш при изменении URL-адреса og: video ????? Я немного отредактировал свое видео и изменил URL-адрес, а facebook продолжает показывать старую версию! Я, очевидно, сделал царапину при отладке (там она отображается правильно), но не в посте! ... Это сводит меня с ума! - person RayOnAir; 07.11.2015
comment
@RayOnAir, тебе просто нужно было подождать? Я испытываю то же самое. - person Peege151; 04.04.2016
comment
@ Peege151 Похоже, что Facebook не очищает кеш для видео, связанного с URL-адресом страницы. Единственный способ обойти это, кажется, изменить URL-адрес страницы. Любая предыдущая публикация со старым URL-адресом будет по-прежнему показывать исходное видео при воспроизведении непосредственно на Facebook. Менять URL-адрес в теге og: video недостаточно. - person RayOnAir; 04.04.2016
comment
@ Peege151 Когда вы вызываете отладчик для отмены изменений в вашем изображении или видео, во всех предыдущих сообщениях по-прежнему будет отображаться старое видео / изображение. Новый удаленный контент будет использоваться только для новых сообщений / репостов в будущем. Это сделано намеренно и из соображений безопасности. В противном случае я мог бы притвориться, что вы поделились чем-то, чего не делали. - person Oriol Esteban; 05.04.2016
comment
@OriolEsteban Когда я вызываю отладчик, он показывает полезную информацию, когда я нажимаю кнопку «Поделиться» после очистки, он по-прежнему показывает старую информацию. Я не говорю об обновлении контента, которым уже поделились. - person Peege151; 05.04.2016
comment
@ Peege151 Я понимаю. Я предполагаю, что вы используете тот же URL / имя файла для нового видео. У меня была аналогичная проблема с изображениями. Даже с? V = [newVID] не работал. Если вы дадите своему видео новое имя файла, оно должно работать. - person Oriol Esteban; 06.04.2016
comment
Facebook также недавно добавил средство аннулирования пакетного кеша: developers.facebook.com/tools/debug/ совместное использование / партия - person Aron; 12.01.2017
comment
О og: image с сайта developers.facebook.com/docs/sharing/ opengraph /: Если вы хотите обновить изображение для объекта, мы настоятельно рекомендуем, чтобы URL-адрес изображения отличался от URL-адреса исходного изображения. Кеширование может помешать обновлению изображения. Мне кажется, что добавление параметра get работает. - person sglessard; 08.08.2017
comment
Убедитесь, что тег og: url в заголовке на этой странице совпадает с тем, который вы передаете. - person Wasim A.; 25.01.2018
comment
Обновление: похоже, сейчас не работает! Я определенно сменил имидж. URL такой же. Даже изменил имя файла миниатюры изображения и загрузил снова. Но не повезло! - person arunwithasmile; 12.12.2018

Если у вас много страниц и вы не хотите обновлять их вручную - вы можете сделать это автоматически.

Допустим, у вас есть страница профиля пользователя с фотографией:

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

Просто добавьте это на свою страницу:

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Это обновит кеш Facebook. Если вы используете решение jQuery, посмотрите «response» в console.log - вы найдете там поле «updated_time» и другую полезную информацию.

person Zhorzh Alexandr    schedule 30.01.2014
comment
это было единственное последовательное решение, которое могло бы разрушить кеш изображений для меня. использование fbrefresh не помогло мне решить мою проблему. - person hellatan; 22.02.2014
comment
Привет, я пробую этот метод, но получаю некоторые ошибки, $ this- ›output ('‹ script type = text / javascript ›$ (document) .ready (function () {$ .post (graph.facebook.com, {id: '. $ this- ›content [' canonical '].', scrape: true} , функция (ответ) {console.log (ответ);});}); ‹/script› '); - person monsterboy; 03.04.2014
comment
Я получаю следующую ошибку Uncaught ReferenceError: $ не определен (анонимная функция), любая помощь будет очень признательна :) - person monsterboy; 03.04.2014
comment
@monsterboy $ - это ярлык для функции jQuery. $ .post () - это то же самое, что и jQuery.post (). Чтобы использовать эту библиотеку, вы должны сначала импортировать ее: ‹script src = code.jquery.com/jquery-latest.min.js type = text / javascript› ‹/script› - person Zhorzh Alexandr; 08.04.2014
comment
@ZhorzhAlexandr спасибо за ваш ответ, но я использую wordpress, и у меня есть одно сообщение, которое можно редактировать каждый день, так как я могу использовать этот скрипт каждый раз, прежде чем делиться? - person Antwan; 11.10.2014
comment
У меня нет опыта работы с Wordpress, поэтому скажите, пожалуйста, каково ваше желаемое поведение страницы? Может быть, вы сможете запускать этот скрипт каждый раз, когда ваш пользователь обновляет сообщение? - person Zhorzh Alexandr; 11.10.2014
comment
@hellatan по какой-то причине у меня не работал. Не могли бы вы рассказать подробнее? - person Petr; 10.09.2015
comment
@petr Опишите, пожалуйста, что именно вы делаете. Получаете ли вы какой-либо ответ от graph.facebook.com? - person Zhorzh Alexandr; 10.09.2015
comment
@Zhorzh Alexandr Я получаю json моего объекта og со всеми правильными значениями. Но изображения на Facebook старые - person Petr; 10.09.2015
comment
#petr Пожалуйста, дайте мне ваш og: url, вы можете найти его в этой строке: ‹meta property = og: url content = #####› - person Zhorzh Alexandr; 10.09.2015
comment
Я решил это, добавив? T = TIMESTAMP к URL-адресу моего изображения в php-скрипте, где мы генерируем теги. Пока это работает. - person Petr; 10.09.2015

Миниатюра OG не обновляется даже при передаче переменной fbrefresh. Чтобы обновить это, не дожидаясь автоматической очистки, вам необходимо изменить имя файла значения метатега, связанного с эскизом, и обновить.

person Seb    schedule 12.12.2012
comment
Согласно другим ответам, вы можете принудительно выполнить обновление с помощью параметра URL fbrefresh. - person Sam Mussmann; 12.12.2012
comment
@SamMussmann Кажется, это только (если он даже это делает) обновляет кеш содержимого тега OG, а НЕ фактическое изображение, найденное по URL-адресу указанного содержимого. НАПРИМЕР: Вы сохраняете теги OG такими же, но меняете файл изображения (сохраняя имя таким же), и само изображение останется в кеше. Я не нашел способа очистить это, кроме, как сказал Себ, вы должны изменить имя файла изображения. - person Nick M; 02.10.2014
comment
@Nick M Вы нашли другие решения? - person Petr; 10.09.2015
comment
Решено. Я решил это, добавив? T = TIMESTAMP к URL-адресу моего изображения в php-скрипте, где мы генерируем теги. Пока это работает. - person Petr; 10.09.2015
comment
Просто попытался переименовать файл изображения и обновить значение метатега, тоже не работает. - person Antonio Ooi; 11.04.2016

У меня были те же проблемы с использованием og:image, несколько попыток переименовать файл или очистить кеш FB не помогли ни через отладчик facebook, ни при тестировании через реальную учетную запись.

В новых правилах facebook указано, что размер изображения должен быть 1200 x 630 или иметь такое соотношение сторон, это кажется неправильным, единственное, что сработало для меня, - это использование изображения с квадратными размерами.

Редактировать * Через несколько часов я вернулся к использованию 1200 x 630, и это волшебным образом сработало, это было волшебно.

Я также переименовал файлы в f * ^ * kfacebook.jpg, не уверен, что это помогло, но мне понравилось.

person Wyck    schedule 10.07.2014

В основном ответ - терпение;)

Сегодня утром я проверил ЛИНТЕР, и og: title и og: url отображаются правильно, без лишних значений. Я предполагаю, что FaceBook автоматически очищает свой кеш через определенный интервал. Мне просто нужно подождать.

введите описание изображения здесь

person Ardee Aram    schedule 26.04.2011
comment
Из facebook для разработчиков, Срок действия кэша объектов истекает каждые 7 дней, и Facebook автоматически изменит размер объекта при его следующем использовании. - person Venugopal; 28.07.2016

Да, facebook автоматически очищает кеш каждые 24 часа: на самом деле facebook очищает страницы и обновляет кеш каждые 24 часа https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo.

person kbsbng    schedule 19.01.2012
comment
Согласно текущей документации, продолжительность кеширования составляет 30 дней. - person patrickhawley; 03.03.2015
comment
обновленная ссылка на эту информацию - developers.facebook.com/docs/plugins/faqs - вы можете настроить его на более частую очистку - person Mousey; 29.08.2015

Оооок, наконец-то помогло (использую IP.Board). Что мне нужно было сделать:

  1. Измените URL-адрес изображения og: на моем веб-сайте (общая конфигурация).
  2. Попробуйте этот метод с? Fbrefresh = 1154464gd56

Спасибо автору за эту ветку!

РЕДАКТИРОВАТЬ: Что еще нужно помнить о требованиях к изображениям. На данный момент (январь 2013 г.) это: - не менее 200 пикселей в обоих направлениях - максимальное соотношение 3: 1

person Matt    schedule 18.01.2013

  1. Посетите страницу FB https://developers.facebook.com/tools/debug/og/object/
  2. Введите свой домен.
  3. Нажмите кнопку "Получить новую информацию для очистки".
  4. Сделанный
person Cropis    schedule 11.11.2014

Извините, ребята, но правильный ответ:

Не существует надежного способа обновить URL-адрес открытого графика og: image с немедленным результатом. Он кешируется до обновления fb (как сообщается, каждые 24 часа).

Вот вещи, которые, по мнению других, работают, но я не добился НУЛЕВОГО успеха ни с одним из них.

  • Выбор "Получить новую информацию для очистки"
  • Изменение фактического имени файла изображения и / или удаление оригинала
  • Добавление строки запроса к URL-адресу изображения путем добавления PHP TIMESTAMP или?
  • Добавление строки запроса "... yoursite.com/?fbrefresh=anything" к URL-адресу выборки отладчика
  • Выбор ссылки API графика внизу страницы og dev
  • Выбор точного просмотра того, что видит парсер - похоже, он не запрашивает некэшированные данные очистки в реальном времени, он все равно показывает URL-адрес кэшированного изображения, даже если файл больше не существует

Проверка вашего кода - это всегда способ убедиться, что это не проблема с кешем браузера или какой-либо службой кеширования. Если метаинформация в вашем коде актуальна, и вы попробовали все вышеперечисленное (если не реализовано другое предложение), правильный ответ: вы можете только подождать.

person Philip Ingram    schedule 12.01.2017

Мы просто столкнулись с этим, как выяснилось, мы не использовали правильный URL-адрес, так как у настоящего URL-адреса была строка запроса (да, другая страница для бота).

http://example.com/

!==

http://example.com/?utm_campaign=foo

Линтер повторно кэширует вашу страницу, вам не нужно ждать.

person Ryan Florence    schedule 09.05.2011

Следует добавить, что URL-адрес чувствителен к регистру. Обратите внимание, что:

apps.facebook.com/<▪HELLO

в глазах линтера другое тогда

apps.facebook.com/< sizeshello

Обязательно используйте точный URL-адрес сайта, который был введен в настройках разработчика для приложения. В противном случае линтер вернет свойства, но не обновит кеш.

person Justin    schedule 02.02.2012

Я обнаружил, что если ваше изображение 72dpi, это даст вам ошибку размера изображения. Вместо этого используйте 96 точек на дюйм. Надеюсь это поможет.

person Gordon    schedule 15.11.2013

  1. Перейдите на страницу http://developers.facebook.com/tools/debug.

  2. Вставьте URL-адрес страницы и нажмите «Отладка». Если ваш сайт использует псевдонимы URL-адресов, убедитесь, что вы используете тот же URL-адрес, который использует Facebook для страницы, которой вы делитесь (пример: в Drupal используйте путь node / * вместо псевдонима, если к странице предоставлен общий доступ через этот URL-адрес).

  3. В разделе «Предварительный просмотр» нажмите ссылку «Посмотреть в диалоговом окне публикации».
person Hans Rossel    schedule 28.06.2014
comment
Лучшее решение! Спасибо - person MeV; 16.05.2016

Документы разработчика Facebook говорят, что свойство title имеет исключение:

После того, как с объектом были связаны 50 действий (лайки, публикации и комментарии), вы не сможете обновить его заголовок.

https://developers.facebook.com/docs/sharing/opengraph/using-objects#update

person moogoo    schedule 12.10.2016

Был подобный опыт. Ссылка на веб-сайт показывала 404 в превью, созданном facebook. Оказывается, метаданные og: url были неправильными. Мы уже исправили это несколько дней назад, но все еще видели 404 на превью. Мы использовали инструмент по адресу https://developers.facebook.com/tools/debug/ и это привело к принудительному обновлению (кстати, не нужно было добавлять какие-либо параметры). В нашем случае Facebook не обновлял кеш через 24 часа, но инструмент помог его принудительно.

person jawss510    schedule 03.06.2013

Это кеш, который, конечно, обновляется, это то, что кеш нужно делать время от времени. Так что ожидание в конечном итоге сработает, но иногда вам нужно делать это быстрее. Смена имени файла работает.

person Srneczek    schedule 27.09.2013
comment
Так почему -1? Буквально никто не ответил на простейшее решение для ИЗМЕНИТЬ ИМЯ ФАЙЛА, и на самом деле оно работает не так, как другие (+/- 5) проголосовавшие ответы, которые нет или, по крайней мере, сделали, но устарели. Конечно, если вы не можете изменить имя файла по какой-либо причине, этот ответ вам не поможет. - person Srneczek; 21.04.2015

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

Я решил использовать метод подачи вместо совместного использования, а затем заполнить данные вручную (что не отображается в методе совместного использования).

Что-то вроде этого:

shareToFB = () => {
    window.FB.ui({
    method: 'feed',
    link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`,
    name: 'THIS WILL OVERRIDE OG:TITLE TAG',
    description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG',
    caption: 'THIS WILL OVERRIDE THE OG:URL TAG'
  });
};
person Peege151    schedule 04.04.2016

Действительно простое решение. Проверено и работает. Вам просто нужно сгенерировать новый URL-адрес при обновлении метатегов. Это так же просто, как добавить «& cacheBuster = 1» к вашему URL-адресу. Если вы измените метатеги, просто увеличьте "& cacheBuster = 2"

Исходный URL

www.example.com

URL при обновлении метатегов og:

www.example.com?cacheBuster=1

URL при повторном обновлении метатегов og:

www.example.com?cacheBuster=2

Facebook будет рассматривать каждый как новый URL-адрес и получать свежие метаданные.

person Will    schedule 10.08.2019

Спустя годы это все еще распространенная проблема, но это не всегда кеш facebook: очень часто это человеческая ошибка (позвольте мне уточнить)

OG: TYPE влияет на очистку изображения:

  1. https://ogp.me/#type_article не то же самое, что https://ogp.me/#type_website

Имейте в виду, что og: type = website приведет к тому, что любые / подстраницы / этого URL станут «каноническими». Это означает, что у вас будут проблемы с обновлением изображений с помощью скребка, что бы вы ни делали.

Считайте это "предположением и распространенной ошибкой"

-<meta property="og:type" content="website" /> => https://www.example.org (родительский)
-<meta property="og:type" content="website" /> => https://www.example.org/sub-page/
-<meta property="og:type" content="website" /> = > https://www.example.org/sub-page/child-2/
- Ergo: /sub-page/ и /child-2/ унаследуют og:image родителя

Это не «все сайты», 1 - это сайт, остальные - статьи.

Если вы это сделаете, Facebook сочтет все это каноническим и поместит ПЕРВОЕ изображение во все из них. (попробуйте, вы увидите) - если вы установите og: url в качестве корневого или родительского домена, вы сказали facebook, что все они канонические. (для этого есть веская причина, но это не по теме)

Рассмотрите это решение (это то, чего "действительно хочет" большинство людей)

-<meta property="og:type" content="article" /> => https://www.example.org/sub-page/ < br> -<meta property="og:type" content="article" /> => https://www.example.org/sub-page/child-2/

Если вы сделаете это сейчас, Facebook даст вам гораздо меньше проблем с очисткой ваших НОВЫХ изображений.

В заключение, ДА, прерыватели кеша, случайные переменные, изменение URL-адресов и предложения здесь могут работать, но они будут выглядеть как «прерывистое вуду», если og:type не указан правильно.

PS: помните, что CDN или кеш на стороне сервера будут служить парсеру Facebook, даже если вы «думаете», что видите самую последнюю версию. (Я не буду тратить на это время, кроме как указать, что это будет тратить колоссальное количество вашего времени, если не будет дважды проверено.)

person Christian Žagarskas    schedule 06.09.2019

Недавно у меня была другая, но похожая проблема с Facebook, и я обнаружил, что упомянутая страница парсера / отладки просто не читает ни одну страницу целиком. Мои мета-свойства для Open Graph были ниже в разделе заголовка, и парсер постоянно сообщал мне, что спецификация изображения неверна, и в любом случае будет использовать кешированную версию. Я переместил теги Open Graph дальше в коде, в самый верх страницы, и каждый раз все работало идеально.

person PaulScott    schedule 31.05.2020

У меня была такая же проблема с fb и twitter, кешировавшими старые метаданные, это заставило меня задуматься, поскольку я продолжал редактировать код, но без изменений. Я наконец обнаружил, что они кэшировали мой первый запрос. Добавление строки запроса к URL-адресу сработало для твиттера, но не для fb (для меня).

person jasenmichael    schedule 28.11.2020