Попросите facebook перерисовать URL - программирование
Подтвердить что ты не робот

Попросите facebook перерисовать URL

Недавно обновлен og: изображение веб-сайта. Сайт содержит более 100 страниц, каждый из которых содержит свое собственное изображение og:. Как я могу спросить или заставить facebook повторно очистить все страницы, чтобы изображение обновилось? Использование средства отладки facebook будет слишком утомительной задачей. Пока facebook не очистит сайт, я не смогу представить коллекцию для приложения.

4b9b3361

Ответ 1

У вас есть две альтернативы в вашей ситуации

  • В соответствии с циклом ответа ysrb через список ваших URL-адресов с помощью инструмента Open Debugger отладки

  • Или подождите терпеливо в течение 30 дней, пока Facebook не перечеркивает ваши страницы, как говорится в документации здесь

Почему и когда Facebook очищает мой сайт?

Facebook должен очистить ссылки, общие для Facebook, чтобы узнать, что связать информацию предварительного просмотра, чтобы показывать на Facebook.com или на Facebook для iOS и Android. Это происходит каждые 30 дней, чтобы обеспечить актуальность свойств. Связанная страница также очищается, когда URL-адрес вводится в Инструмент отладки.

Facebook наблюдает за заголовками кеша на ваших URL-адресах - он будет смотреть на "Истекает" и "Кэш-контроль" в порядке предпочтения. Однако, даже если вы укажете более длительное время, Facebook будет царапать вашу страницу каждые 30 дней.

Ответ 2

Вы можете принудительно повторно очистить через API, как описано здесь: https://developers.facebook.com/docs/opengraph/using-objects/#update:

POST /?id={object-instance-id or object-url}&scrape=true

(Но если вы не имеете реальный список затронутых URL-адресов, это своего рода спорным. Тогда вы только можете ждать, пока это не произойдет автоматически, я думаю.)

Ответ 3

       $config = array(
            "appId" => 'APP_ID',
            "secret" => 'APP_SECRET');

        $fb = new Facebook($config);
        $r=$fb->api('/','POST',array(
            'id'=>PAGE_URL,
            'scrape'=>'true'
        ));

Ответ 4

Помните, что Facebook требует передачи параметров через POST. Facebook просто игнорирует запросы GET.

Вот код в С#.

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(
    "https://graph.facebook.com/?id="
    + HttpUtility.UrlEncode("http://www.example.com/index.html")
    + "&scrape=true");
httpRequest.Method = "POST";
using (HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse())
{
    using (Stream responsestream = httpResponse.GetResponseStream())
    {
        if (responsestream != null)
        {
            using (StreamReader bodyreader = new StreamReader(responsestream))
            {
                string fbResp = bodyreader.ReadToEnd();
            }
        }
    }
}

Ответ 6

Вы можете попробовать цикл из списка URL-адреса и сделать

curl "http://developers.facebook.com/tools/debug/og/object?q=$url"