it-swarm.com.ru

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

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

Я запустил Lint на страница на моем сайте , и это появилось:

Facebook Open Graph lint screenshot

Обратите внимание, что есть два значения для 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? Кто-нибудь испытывает ту же проблему?

166
Ardee Aram
  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 сохраняет миниатюру кеша. Он не будет обновляться, даже если вы удалите thumnail/изображение с вашего сервера. Но Facebook позволяет обновлять, используя fbrefresh

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

299
P.C.

Самый голосующий вопрос довольно устарел:

Это только 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_HERE] & scrape = true (см .: https: //developers.facebook. ком/документы/games_payments/takingpayments # соскоб )
  2. Убедитесь, что тег og: url, включенный в заголовок на этой странице, совпадает с тегом, который вы передаете.
  3. вы можете даже проанализировать ответ json, чтобы получить количество долей этого URL.

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

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

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

  • Когда вы вызываете отладчик, чтобы отменить изменения в тегах og: на своей странице, все предыдущие публикации Facebook с этим URL все равно будут отображать старое изображение/видео. Невозможно обновить все предыдущие посты, и это из соображений безопасности. В противном случае кто-то сможет притвориться, что пользователь поделился чем-то, чего он на самом деле не сделал.
78
Oriol Esteban

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

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

$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" и другую полезную информацию.

19
Zhorzh Alexandr

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

11
Seb

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

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

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

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

6
Wyck

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

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

enter image description here

6
Ardee Aram

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

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

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

Правка: Что еще нужно помнить о требованиях к изображению. На данный момент (январь 2013) это: - не менее 200 пикселей в обоих направлениях - максимальное соотношение 3: 1

4
Matt

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

http://example.com/

==!

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

Linter будет перечитать вашу страницу, вам не нужно ждать.

4
Ryan Florence

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

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

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

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

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

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

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

3
Philip Ingram

Одна вещь, которую нужно добавить, это URL с учетом регистра. Обратите внимание, что:

apps.facebook.com/ПРИВЕТ

отличается в глазах Линтера тогда

apps.facebook.com/hello

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

3
Justin

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

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

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

1
moogoo

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

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

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

  3. Нажмите на ссылку "Просмотреть предварительный просмотр" в ссылке "Просмотреть это в диалоговом окне".
1
Hans Rossel

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

0
Srneczek

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

0
jawss510

У меня тоже была эта проблема. Скребок показывает правильную информацию, но 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'
  });
};
0
Peege151

Для меня все решения не сработали. Я узнал, что если вы используете Wordpress с Yoast SEO, то вам нужно обновить эти два тега:

<meta property="article:modified_time" content="2017-09-29T00:37:33+02:00" />
<meta property="og:updated_time" content="2017-09-29T00:37:33+02:00" />

Чтобы обновить значения, вы должны отправить любое изменение в статью. Если вы не измените эту дату, кеш Facebook не обновится.

Вы также можете отключить эти дополнительные теги, добавив фильтры в functions.php:

add_filter( 'wpseo_og_article_published_time', '__return_false' );
add_filter( 'wpseo_og_article_modified_time', '__return_false' );
add_filter( 'wpseo_og_og_updated_time', '__return_false' );
0
Karol Trybulec