У меня возникла проблема с распространением содержимого facebook на моем веб-сайте. В нем реализована кнопка «Like», но когда вам нравится «картинка в вашем профиле facebook, отображается старое изображение (изображение с заведомо кэшированным изображением). То, что на этом сайте работает так ... каждый день появляется новая картина девушки того времени, но URL-адрес всегда один и тот же (переписанный apache).Очистить общий доступ к кешу Facebook с cURL и lint
Я должен найти способ автоматического и периодического (когда новый снимок установлен на месте) очистить кеш facebook.
Когда я помещаю url, для которого я хочу обновить кеш непосредственно в форме fb debug tool (lint), и нажмите «debug», он очистит кеш и обновит контент, когда кому-то понравится контент на моем сайте.
Но проблема в том, что я пытаюсь обновить кеш автоматически (через php-скрипт или через задание cron). Что-то вроде этого не работает:
wget http://developers.facebook.com/tools/debug/og/object?q=http://www.vecernji.hr/djevojka-dana
или как это также не работает:
curl http://developers.facebook.com/tools/debug/og/object?q=http://www.vecernji.hr/djevojka-dana
Кроме того, сценарий PHP не работает:
$url = "http://developers.facebook.com/tools/debug/og/object?q=http://www.vecernji.hr/djevojka-dana";
$useragent = "Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.10.229 Version/11.60";
if ($ch = curl_init($url))
{
curl_setopt($ch , CURLOPT_HEADER , 0);
curl_setopt($ch , CURLOPT_RETURNTRANSFER , true);
curl_setopt($ch , CURLOPT_USERAGENT , $useragent);
$str_response = curl_exec($ch);
if(curl_errno($ch) != 0)
{
$message = 'Girl of the day - cURL exec error: ' . $ch;
error_log($message);
}
curl_close($ch);
}
else
{
$message = 'Girl of the day - cURL init with url: ' . $url . ' failed';
error_log($message);
}
Содержание нравится это по адресам:
http://www.vecernji.hr/djevojka-dana и http://www.vecernji.hr/decko-dana
Кто-нибудь знает причину, почему я не могу обновить кеш через PHP скрипт, Wget или скручиванию, но когда я ставлю данный URL непосредственно и вручную в виде пуха и нажмите кнопку представить на освежают содержание?
Я видел это, но это не работает для меня, потому что мне нужно «атаки» инструмент Lint автоматически, с некоторым скриптом php. Проблема в том, что когда я вручную перехожу к URL-адресу Lint и ставил URL-адрес, для которого я хочу, чтобы ясный кеш в текстовом поле все шло хорошо. Кэш очищается.Но когда я пытаюсь сделать это с помощью таких инструментов, как wget или cURL, это не сработает. Кэш не очищается. Я полагаю, что я могу использовать wget или cURL, потому что форма, в которую мы помещаем url для очистки кеша, использует простые запросы GET. –
Это было взято из [документации] (https://developers.facebook.com/docs/opengraphprotocol/): 'curl https://developers.facebook.com/tools/lint/?url={YOUR_URL}&format= json'. Этот код 'cURL' заставит ваш URL-адрес скреблиться * ... – Lix