Как очистить кеш Facebook Sharer? - PullRequest
113 голосов
/ 10 марта 2011

Мы использовали ссылку:

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

... чтобы поделиться определенной страницей. Тем не менее, Facebook Sharer использует кэшированную версию изображений и заголовок. Есть ли способ быстро очистить кеш Facebook или как долго мы должны ждать обновления данных?

Я поместил <link rel='image_src' href='[preview image]' /> между тегами.

Ответы [ 10 ]

235 голосов
/ 10 марта 2011

Я нашел решение своей проблемы. Вы можете перейти на этот сайт:

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

... затем введите URL-адрес страницы, которой вы хотите поделиться, и нажмите «отладка». Он автоматически извлечет всю информацию о ваших метатегах, а также очистит кеш.

10 голосов
/ 22 апреля 2014

Facebook рассматривает каждый URL как уникальный и кэширует страницу на основе этого URL, поэтому, если вы хотите поделиться последним URL-адресом, самое простое решение - добавить строку запроса с URL-адресом, которым вы делитесь. Простыми словами просто добавьте? V = 1 в конце URL. Любое число может быть использовано вместо 1.

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

10 голосов
/ 17 октября 2013

Использовать 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 );
3 голосов
/ 27 августа 2015

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

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

3 голосов
/ 10 марта 2011

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

fbml.refreshRefUrl

вот так

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

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

2 голосов
/ 29 апреля 2016

Этот ответ предназначен для разработчиков.

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

ответ catandmouse верен, но вы также можете заставить Facebook очистить кеш OG (OpenGraph), отправив запрос на публикацию на график.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 голос
/ 09 мая 2017

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

краткий ответ ... измените ваши постоянные ссылки на сайте Werpdress в настройках постоянных ссылок на пользовательские. Я только что добавил подчеркивание.
/ _% Postname% /
затем фейсбук очищает их как новые URL, новые сообщения.

1 голос
/ 23 января 2016

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

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

{id: url,
scrape: true}
0 голосов
/ 09 августа 2017

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

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

0 голосов
/ 01 сентября 2016

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...