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


174

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

Я побіг Лінта на сторінці свого сайту , і це з’явилося:

Скріншот екрана 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? Хтось стикається з тією ж проблемою?


Я гадаю, це як історія? Я бачу FB отримання останньої titleі urlдля вас (в інформаційній таблиці) , так навіщо?
ifaour

Проблема в тому, що facebook Like count все ще є для СТАРОГО og: url ( pinq.dk ), який становить близько 200+, на відміну від рахунку для pinq.dk/tilbud/landsdaekkende/lissy
Арді Арам

і я не думаю, що це історія. Більше og: url (нібито) встановлюється двічі, останній - той, що переважав. Так чи інакше, старі значення, вилучені з коду, все ще впливають на мета-значення.
Арді Арам

3
Ну, прочитайте це . Особливо розділ Редагування метатегів . Я не впевнений, що це пов'язано, але це може допомогти. Перевірте це пізніше, вибачте товариш!
ifaour

2
Це, мабуть, саме так. "Ви можете оновити атрибути вашої сторінки, оновивши теги <meta> на вашій сторінці. Зауважте, що og: title та og: type можна редагувати лише спочатку - після того, як ваша сторінка отримає 50 лайків, заголовок стає фіксованим, і після того, як ваша сторінка отримує 10 000 лайків тип стає фіксованим. Ці властивості фіксуються, щоб уникнути здивування користувачів, яким сторінка вже сподобалась. Зміна заголовка чи тегів типу після досягнення цих меж нічого не робить, ваша сторінка зберігає оригінальну назву та тип. " Дякую ifaour!
Арді Арам

Відповіді:


304
  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

Я сподіваюся, що це допомагає.


30
param fbrefresh може не знадобитися, оскільки інструмент налагодження оновить об'єкт без нього.
alexandru.topliceanu

7
Він не очищає кеш-пам'ять, якщо ви не використовуєте цей параметр.
Umur Kontacı

26
Неправда, додавши, що параметр не має значення для роботи інструменту налагодження - в інструменті налагодження чи кодексу скрепера немає посилання на цей параметр
Igy

7
Не потрібно використовувати параметр fbrefresh, але вам потрібно ввійти в систему як адміністратор програми FB, яка володіє цим доменом, інакше кеш не буде оновлений.
Феліпе Брам

3
Я можу переконатися, що додавання параметра fbrefresh працювало на мене. Якщо я поділився URL-адресою, він використовував старі дані, навіть якщо налагоджувач показував правильні дані. Але колись я використовував налагоджувач з параметром fbrefresh, то навіть звичайні спільні дані використовували правильні дані.
морозиво

82

Найбільш проголосоване питання є досить застарілим:

Це єдині два варіанти, які слід використовувати з листопада 2014 року :

Для не розробників

  1. Використовуйте FB Debugger: https://developers.facebook.com/tools/debug/og/object
  2. Вставте URL, який потрібно повторно змінити. (Переконайтеся, що ви використовуєте той самий URL, який включений у ваш тег og: url)
  3. Ще раз натисніть кнопку Інформація про видобуток

Для розробників

  1. Здійснюйте виклик GET програмно за цією URL-адресою: https://graph.facebook.com/?id= evidenceYOUR_URL_HERESense&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-адреси все одно відображатимуть старе зображення / відео. Немає можливості оновлювати всі попередні повідомлення, і це таким чином за допомогою дизайну з міркувань безпеки. В іншому випадку хтось може зробити вигляд, що користувач поділився чимось, чого насправді не зробив.

Схоже, не повертається кількість спільних публікацій для моєї сторінки. Я читаю в цьому дописі: " stackoverflow.com/questions/3581488/… " про те, що вам потрібно мати кнопку "Facebook" / поділитися на сторінці, щоб результат цієї кінцевої точки містив будь-яку інформацію.
WillyBurb

переконайтеся, що теги в голові, а не в ТІЛЬКІ вашої сторінки - налагоджувач попередить вас про це, але вони будуть ігноровані (так, я знаю, ви згадали про це, я просто хотів наголосити на цьому)
Simon_Weaver

@Oriol Esteban Ви знайшли інші способи оновлення зображень?
Петро

3
@Oriol Коли я нещодавно спробував це, мені довелося розмістити публікацію на цю URL-адресу (відповідно до developers.facebook.com/docs/sharing/opengraph/… )
Glen T

1
Будь-які ідеї про те, як подряпати кеш при зміні URL-адреси og: video ????? Я зробив невелику редакцію свого відео та змінив URL-адресу, а у Facebook продовжує відображатися стара версія! Я, очевидно, зробив подряпину в налагодженні (це там правильно показано), але не в публікації! ... це зводить мене з розуму!
RayOnAir

19

Якщо у вас багато сторінок і не хочете оновити їх вручну - ви можете зробити це автоматично.

Скажімо, у вас є сторінка профілю користувача із фотографією:

$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, перегляньте "відповідь" у console.log - там ви знайдете поле "updated_time" та іншу корисну інформацію.


це було єдиним послідовним рішенням, яке розібрало б кеш зображень для мене. використання fbrefreshнічого не зробило для моєї проблеми.
Геллатан

Привіт, я намагаюся цей метод, але я отримую деякі помилки, $ this-> output ('<script type = "text / javascript"> $ (document) .ready (function () {$ .post (" graph .facebook.com ", {id:" '. $ this-> content [' canonical '].' ", scrape: true}, function (response) {console.log (відповідь);});}); < / script> ');
monsterboy

Я отримую таку помилку Uncaught ReferenceError: $ не визначено (анонімна функція), будь-яка допомога буде дуже вдячна :)
monsterboy

@monsterboy $ - це ярлик до функції jQuery. $ .post () - те саме, що jQuery.post () Щоб користуватися цією бібліотекою, потрібно спочатку імпортувати її: <script src = " code.jquery.com/jquery-latest.min.js " type = "text / javascript "> </script>
Жорж Олександр

@ ZhorzhAlexandr THX для відповіді на ур, але у них, використовуючи wordpress, і у мене є одна посада, яку можна редагувати кожен день, так як я могла використовувати цей сценарій кожен раз, перш ніж ділитися?
Антван

12

Здається, мініатюра OG не оновлюється, навіть якщо передає змінну fbrefresh. Щоб оновити це, не чекаючи автоматичного очищення, вам потрібно буде змінити ім'я файлу мініатюри, пов’язане із значенням метатегів та оновити.


Відповідно до інших відповідей, ви можете примусити оновити, використовуючи fbrefreshпараметр URL.
Сем Муссманн

1
@SamMussmann Здається, що це лише (якщо це навіть робиться) оновить кеш вмісту тегів OG, а НЕ власне зображення, знайдене з URL-адреси зазначеного вмісту. EG: Ви зберігаєте теги OG однаковими, але змінюєте файл зображення (зберігаючи те саме ім'я), і саме зображення залишатиметься в кеші. Я не знайшов способу очистити це, крім, як сказав Себ, ви повинні змінити ім'я файлу зображення.
Нік М

@Nick M Ви знайшли якісь інші рішення?
Петро

Вирішено. Я вирішив це, додавши? T = TIMESTAMP до моєї URL-адреси зображення в скрипті php, де ми генеруємо теги. Наразі це працює.
Петро

Просто спробував перейменувати файл зображення та оновив значення мета-тегів, але теж не працює.
Антоніо Оої

7

У мене були ті самі проблеми, що використовуються og:image , кілька спроб перейменувати файл чи очистити кеш-пам'ять FB не спрацювали ні через налагоджувач у Facebook, ні на тестуванні через фактичний рахунок.

Нові вказівки у фейсбуці зазначають, що розмір зображення повинен бути 1200 x 630 або мати таке співвідношення сторін, це здається, що це неправильно, єдине, що працювало для мене, - це використання зображення з квадратними розмірами .

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

Я також перейменував файли на f * ^ * kfacebook.jpg, не впевнений, що це допомогло, але він почував себе добре.


6

В основному, відповідь - терпіння;)

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

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


З facebook для розробників , кеш-об’єкт закінчується кожні 7 днів, і Facebook автоматично перекроює об'єкт при наступному використанні.
Venugopal

4

Ми просто зіткнулися з цим, як виявляється, ми не зв’язували потрібну URL-адресу, оскільки в реальному URL-адресі був рядок запиту (так, на сторінці бота інша сторінка).

http://example.com/

! ==

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

Лінтера буде помістити в кеш сторінки, ви не повинні чекати.


4

Так, facebook автоматично очищає кеш-пам'ять кожні 24 години: насправді фейсбук обчислює сторінки та оновлює кеш кожні 24 години https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo .


Згідно з поточною документацією, тривалість кешу - 30 днів.
patrickhawley

1
оновлене посилання на цю інформацію - developers.facebook.com/docs/plugins/faqs - ви можете налаштувати її на скребті частіше
Mousey

4

Ooook, нарешті це допомогло (я використовую IP.Board). Що я повинен був зробити:

  1. Змінити URL-адресу og: image на моєму веб-сайті (Загальна конфігурація).
  2. Спробуйте цей метод за допомогою? Fbrefresh = 1154464gd56

Дякую автору за цю тему!

EDIT: Що ще потрібно пам’ятати про вимоги до зображення. Наразі (січень 2013 р.) Це: - принаймні 200 пікс в обох напрямках - максимальне співвідношення 3: 1



3

Варто додати, що URL-адреса відрізняється від регістру . Зауважте, що:

apps.facebook.com/ HELLO

тоді в очах лайнера різна

apps.facebook.com/ привіт

Не забудьте скористатися точним URL-адресом сайту, який було введено в налаштуваннях розробника для додатка. Лінійник поверне властивості інакше, але не оновить кеш.


3

Вибачте, але правильна відповідь:

Не існує дурного доказу способу оновити відкритий графік og: image URL з негайним результатом. Він зберігається в кешованому режимі до оновлення fb (повідомляється кожні 24 години)

Ось речі, про які, як повідомлялося, працюють інші, але я мав успіх у ZERO з будь-яким із них.

  • Вибір "Отримати нову інформацію про скріплення"
  • Зміна фактичного імені файлу зображення та / або видалення оригіналу
  • Додавання рядка запиту до URL-адреси зображення, додавши PHP TIMESTAMP або?
  • Додавання рядка запиту "... tvojeite.com/?fbrefresh=anything" до URL-адреси пошуку відладчика
  • Вибір посилання API графіки внизу сторінки og dev
  • Вибираючи, щоб точно побачити те, що бачить скрепер - не видається, щоб запитувати дані про скрепіння в кеш-пам'яті в режимі реального часу, він все ще показує URL-адрес кешованого зображення, навіть якщо файлу більше не існує

Перевірка вашого коду завжди є місцем для підтвердження, що це не проблема кешу браузера чи якоїсь послуги кешування. Якщо мета-інформація у вашому коді актуальна, і ви спробували все вищесказане (якщо інша пропозиція не вдається), правильна відповідь - ви не можете нічого не чекати, як чекати .


1

Я з’ясував, що якщо ваше зображення становить 72dpi, це призведе до помилки розміру зображення. Використовуйте замість цього 96dpi. Сподіваюся, це допомагає.


1
  1. Перейдіть на сторінку http://developers.facebook.com/tools/debug

  2. Вставте URL-адресу сторінки та натисніть налагодження. Якщо ваш сайт використовує псевдоніми url, переконайтеся, що ви використовуєте той самий URL, який використовує Facebook для сторінки, яку ви обмінюєтесь (наприклад: в Drupal використовуйте шлях до вузла / * замість псевдоніму, якщо сторінка надається через цей URL).

  3. Натисніть на частину "Попередній перегляд" на посилання "Дивіться це у діалоговому вікні спільного доступу"

Найкраще рішення! Дякую
MeV


0

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


0

Це кеш, часто він оновлює, ось що кеш потрібно робити раз у раз. Тож очікування в кінцевому підсумку спрацює, але іноді це потрібно зробити швидше. Зміна назви файлу працює.


То чому -1? Буквально ніхто не відповів на найпростіше рішення ЗМІНИТИ ФАЙНАМУ, і це насправді працює не так, як проголосували інші (+/- 5) відповіді, які ні, або, принаймні, вони є, але застаріли. Звичайно, якщо ви не можете змінити ім'я файлу з якоїсь причини, ця відповідь вам не допоможе.
Srneczek

0

У мене виникло і це питання. У скребку відображається правильна інформація, але 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

Дійсно легко вирішити. Випробуваний та працюючий. Вам просто потрібно створити нову URL-адресу під час оновлення метатегів. Це так само просто, як додати "& cacheBuster = 1" до URL-адреси. Якщо ви змінюєте метатеги, просто збільште "& cacheBuster = 2"

Оригінальна URL-адреса

www.example.com

URL-адреса при оновленні мета-тегів:

www.example.com?cacheBuster=1

URL, коли мета-теги og знову оновлюються:

www.example.com?cacheBuster=2

Facebook ставиться до кожного, як до нового URL-адреси, і отримає нові метадані.


0

Через роки, і це все ще є загальною проблемою, але кеш не завжди у фейсбуці: це дуже часто людська помилка (дозвольте мені детальніше)

OG: TYPE впливає на вичісування зображення:

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

Майте на увазі, що og: type = веб-сайт призведе до того, що будь-які / підсторінки / цього 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 /
- Ерго: /sub-page/і /child-2/успадкує og:imageбатьківське

Це не "всі веб-сайти", 1 - це веб-сайт, інші - статті.

Якщо ви зробите це, Facebook подумає, що все це є канонічним, і він поставить ПЕРШИЙ og: image у всі вони. (спробуйте, ви побачите) - якщо ви встановите, щоб og: url був вашим кореневим або батьківським доменом, ви сказали у Facebook, що вони все канонічні. (для цього є вагомі причини, але це поза темою)

Розглянемо це рішення (чого саме більшість людей "дійсно хочуть")

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

Якщо ви зробите це зараз, Facebook надасть вам набагато менше проблем з вискоблюванням ваших НОВИХ зображень.

На завершення ТАК буфери кеш-пам'яті, випадкові вари, зміна URL-адрес та пропозицій тут можуть працювати, але вони будуть здаватися "переривчастими вуду", якщо значення og:typeне вказано правильно.

PS: пам’ятайте, що кеш-пам'ять CDN або сервер буде служити скребку Facebook, навіть якщо ви «думаєте», що ви бачите останню версію. (Я не буду витрачати на це будь-який час, крім того, щоб зауважити, що це буде витрачати колосальні кількості вашого часу, якщо їх не перевірити двічі.)


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.