Як очистити кеш-пам'ять Sharer Facebook?


116

Ми використовували посилання:

http://www.facebook.com/sharer.php?u=[shared URL]

... поділитися певною сторінкою. Однак Facebook Sharer використовує кешовану версію зображень та назви. Чи є спосіб швидко очистити кеш-пам'ять Facebook або скільки часу нам потрібно чекати, поки дані не оновлюються?

Я розмістив <link rel='image_src' href='[preview image]' />між тегами.

Відповіді:


237

Я знайшов рішення своєї проблеми. Ви можете зайти на цей сайт:

https://developers.facebook.com/tools/debug

... потім введіть URL-адресу сторінки, якою ви хочете поділитися, і натисніть "налагодити". Він автоматично витягне всю інформацію про ваші метатеги, а також очистить кеш.


1
Чи є спосіб отримати те саме, але автоматично за допомогою JavaScript? На моєму сайті є сторінки, які часто можуть змінювати свою назву. Мені хотілося б не чекати цілодобового скидання кешу Facebook, і я не можу щоразу переходити на Facebook Lint. Я спробував використовувати запит ajax до Facebook Lint (з developers.facebook.com/tools/debug/og/object?q= ... як URL), але відповідь полягає в тому, що значення q (передається як параметр вище URL) не дозволяється Access-Control-Allow-Origin.
Джованні Бітлінер

3
Якщо у вас все ще виникають проблеми з оновленням, спробуйте додати параметр рядка випадкового запиту в кінець своєї URL-адреси.
JD Smith

2
Просто натисніть на Fetch new scrape informationкнопку
IvanRF

2
Я зібрав нову інформацію про скребки ... вона бачить правильні дані, але учасник показує старі дані. Чи є ще щось, що ми можемо зробити?
Піг151

1
Якщо у вас є проблеми із зображенням, що відображається у спільному доступі, спробуйте змінити URI зображення.
totymedli

10

Використовуйте api Чи існує API, щоб змусити Facebook знову скребкувати сторінку?

$furl = 'https://graph.facebook.com';

$ch = curl_init();

curl_setopt( $ch, CURLOPT_URL, $furl );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
$params = array(
    'id' => '<update_url>',
    'scrape' => true );
$data = http_build_query( $params );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );

curl_exec( $ch );
$httpCode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );

10

Facebook розглядає кожну URL-адресу як унікальну та кешує сторінку на основі цього URL-адреси, тому, якщо ви хочете поділитися останнім URL-адресом, найпростішим рішенням є додати рядок запиту до спільного URL-адреси. Простими словами просто додайте? V = 1 в кінці URL-адреси. Будь-яке число можна використовувати замість 1.

Підказка капелюха: Умаїр Джабар


Я думаю, це вплине на кількість посилань, отриманих вашою сторінкою, оскільки вони враховуватимуться для кожної версії, правда?
Андре Ласло

3

Я маю на увазі, що ці два посилання мають широке обговорення ваших проблем, пов'язаних із проблемою. fb: повторно очистити каси, зателефонувавши

fbml.refreshRefUrl

подобається це

<tt> fbml.refreshRefUrl ("http://www.mysite.com/someurl.php")

Ви можете вивчити пов'язані речі звідси fb: ref . Сподіваюся, це спрацює для вас


3

Сторінка для цього знаходиться за адресою https://developers.facebook.com/tools/debug/ і дещо змінилася після деяких інших відповідей.

Вставте туди свою URL-адресу та натисніть « Налагодження ». Потім натисніть кнопку " Отримати нову інформацію про скребки " під текстовим полем URL-адреси, і вам слід все налаштувати. Він витягне свіжі метатеги з вашої сторінки, але вони все одно кешуватимуться, тому майте на увазі, що вам потрібно буде робити це кожного разу, коли ви їх змінюєте. Це дуже важливо, якщо ви граєте з метатегами, щоб дозволити спільним URL-адресам FB форматувати так, як ви хочете, щоб вони були у фейсбуці.


2

Ця відповідь призначена для розробників.

Очищення кеша означає, що нові спільні веб-сторінки показуватимуть новий вміст, який міститься в тегах OG. Але лише в тому випадку, якщо URL-адреса, над якою ви працюєте, має менше 50 взаємодій (лайки + спільний доступ). Це також не вплине на старі посилання на цю веб-сторінку, які вже були розміщені у Facebook. Тільки при повторному обміні URL-адресою у Facebook буде оновлено так, як Facebook показує посилання.

Відповідь Catandmouse правильна, але ви також можете зробити Facebook очищенням кешу OG (OpenGraph), надіславши запит на пошту на graph.facebook.com (працює як для http, так і для https на час написання цієї відповіді). Вам не потрібен маркер доступу.

Запит на пошту graph.facebook.com може виглядати наступним чином:

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: graph.facebook.com
Content-Length: 63
Accept-Encoding: gzip
User-Agent: Mojolicious (Perl)

id=<url_encoded_url>&scrape=true

У Perl ви можете використовувати такий код, де бібліотека Mojo :: UserAgent використовується для надсилання та отримання HTTP-запитів:

sub _clear_og_cache_on_facebook {
    my $fburl     = "http://graph.facebook.com";
    my $ua        = Mojo::UserAgent->new;
    my $clearurl  = <the url you want Facebook to forget>;
    my $post_body = {id => $clearurl, scrape => 'true'};
    my $res       = $ua->post($fburl => form => $post_body)->res;
    my $code      = $res->code;
    unless ($code eq '200') {
        Log->warn("Clearing cached OG data for $clearurl failed with code $code.");
        }
    }
}

Надіслати цей запит на пошту через термінал можна за допомогою наступної команди:

curl -F id="<URL>" -F scrape=true graph.facebook.com

1

Додайте a? V = random_string до URL-адреси. Якщо ви використовуєте цю ідею разом із поділом у Facebook, переконайтеся, що параметр og: url у відповіді відповідає URL-адресу, яким ви ділитесь. Це також буде працювати з google plus.

Для Facebook ви також можете змусити повторне сканування, зробивши поштовий запит на https://graph.facebook.com

{id: url,
scrape: true}

Це саме те, що я шукав.
Бджола

Я не зміг зробити це, коли я працював над публікацією вищезгаданого JSON в "Postman", однак розміщення необробленого текстового рядка викликало оновлення:id=http://www.ridr.me&scrape=true
Philipp Sumi

1

Я щойно опублікував просте рішення, яке займає 5 секунд тут, на пов’язаній публікації тут - налагоджувач у Facebook: Очистити

коротку відповідь кешу всього сайту ... змініть свої постійні посилання на веб-сайті департаменту в налаштуваннях постійних посилань на власні. Я щойно додав підкреслення.
/ _% прізвище% /
тоді facebook викреслює їх усіх як нові URL-адреси, нові публікації.


Це я просто і круто. На жаль, це залишає небажані імена посилань.
Гаравани

0

якщо ви використовуєте wordpress із плагіном кешу, не забудьте очистити всі кеші. Також переконайтесь, що зображення, яке ви використовуєте, має рекомендований розмір facebook: 1200 (ш) х 630 (год) або 600 х 315.


0

Якщо ви використовували керовані плагіни для WordPress або кешування, вам доведеться ОЧИСТИТИ СВОЙ КАШ, перш ніж інструмент налагодження facebook зможе отримати нову інформацію!

Я вже кілька тижнів витягую волосся, з'ясовуючи, чому зміни, які я вніс, не з’являться на Facebook-налагоджувачі протягом 24 годин !!!! Виправлення полягає в тому, що я повинен зайти на мою інформаційну панель wordpress, натиснути піктограму godaddy у верхній частині та натиснути "flush cache". Я думаю, що багато керованих хостерів для wordpress мають кеш-пам'ять, щоб зрозуміти, як його очистити, і ти станеш золотим.


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