Как очистить кеш Facebook Sharer?

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? На моем сайте есть страницы, название которых может часто меняться. Я не хочу ждать 24 часа сброса кеша 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кнопку
ИванРФ
2
Я получил новую информацию об очистке ... он видит правильные данные, но участник показывает старые данные. Что еще мы можем сделать?
Peege151,
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 можно использовать любое число.

Наконечник шляпы: Умайр Джаббар

Мартин Карстенс
источник
Я думаю, это повлияет на количество ссылок, полученных вашей страницей, поскольку они будут учитываться для каждой версии, верно?
André Laszlo
3

Я думаю, что эти две ссылки широко обсуждают ваши проблемы. fb: ref очистить кеш, позвонив

fbml.refreshRefUrl

как это

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

Вы можете изучить соответствующие материалы здесь fb: ref . Я надеюсь это сработает для тебя

Аваис Карни
источник
3

Страница для этого находится по адресу https://developers.facebook.com/tools/debug/ и немного изменилась со времени некоторых других ответов.

Вставьте свой URL-адрес и нажмите « Отладка ». Затем нажмите кнопку « Получить новую информацию для очистки » под текстовым полем URL, и все будет готово. Он извлечет свежие метатеги с вашей страницы, но они все равно будут кэшироваться, поэтому имейте в виду, что вам нужно будет делать это каждый раз, когда вы их меняете. Это действительно важно, если вы играете с метатегами, чтобы получить общие URL-адреса FB в формате, который вы хотите, внутри facebook.

Мэтт Тойго
источник
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

Добавьте к URL-адресу? V = random_string. Если вы используете эту идею для публикации в Facebook, убедитесь, что параметр og: url в ответе соответствует URL-адресу, которым вы делитесь. Это также будет работать с Google Plus.

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

{id: url,
scrape: true}
Пурушотаман Рамрадж
источник
Это именно то, что я искал.
Пчела
Я не смог заставить это работать, разместив вышеуказанный JSON в Postman, но публикация необработанной текстовой строки действительно вызвала обновление:id=http://www.ridr.me&scrape=true
Филипп Суми
1

Я только что опубликовал простое решение, которое занимает 5 секунд здесь, в соответствующем сообщении здесь - Отладчик Facebook: Очистить кеш всего сайта,

короткий ответ ... измените свои постоянные ссылки на сайте с постоянными ссылками в настройках постоянных ссылок на пользовательские. Я просто добавил подчеркивание.
/ _% postname% /
затем facebook очищает их все как новые URL-адреса, новые сообщения.

NowLiveLove
источник
Это просто и круто. К сожалению, остаются нежелательные имена ссылок.
Garavani
0

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

csandreas1
источник
0

Если вы использовали управляемый WordPress или плагины кеширования, вам необходимо ОЧИСТИТЬ КЭШ, прежде чем инструмент отладки facebook сможет получить новую информацию!

Я рвал волосы неделями, пытаясь понять, почему внесенные мной изменения не отображаются в отладчике facebook в течение 24 часов !!!! Исправление в том, что мне нужно зайти в панель управления WordPress, щелкнуть значок godaddy вверху и нажать «очистить кеш». Я думаю, что у многих управляемых хостеров WordPress есть кеш, чтобы выяснить, как его очистить, и вы будете золотыми.

Тим Марчини
источник
Очистка кеша Wordpress не поможет. По крайней мере для меня.
Гаравани