2012-01-25 2 views
0

У меня возникла проблема с распространением содержимого 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 непосредственно и вручную в виде пуха и нажмите кнопку представить на освежают содержание?

ответ

0

Пожалуйста, смотрите ссылку на предыдущий ответ на мой ниже для получения дополнительной информации о кэшировании facebook:

http://facebook.stackoverflow.com/a/9019926/558021

+0

Я видел это, но это не работает для меня, потому что мне нужно «атаки» инструмент Lint автоматически, с некоторым скриптом php. Проблема в том, что когда я вручную перехожу к URL-адресу Lint и ставил URL-адрес, для которого я хочу, чтобы ясный кеш в текстовом поле все шло хорошо. Кэш очищается.Но когда я пытаюсь сделать это с помощью таких инструментов, как wget или cURL, это не сработает. Кэш не очищается. Я полагаю, что я могу использовать wget или cURL, потому что форма, в которую мы помещаем url для очистки кеша, использует простые запросы GET. –

+0

Это было взято из [документации] (https://developers.facebook.com/docs/opengraphprotocol/): 'curl https://developers.facebook.com/tools/lint/?url={YOUR_URL}&format= json'. Этот код 'cURL' заставит ваш URL-адрес скреблиться * ... – Lix

2

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

В любом случае, следующая лучшая вещь, которую я мог бы сделать, чтобы сэкономить время, заключалась в создании сценария, который выводит ВСЕ ссылки на инструмент линта, который нуждается в обновлении. Затем я использовал инструмент, подобный Linky, чтобы сразу открыть все ссылки. Бам, все кэши очищены.

Если вам нужно сделать это один раз в день, я думаю, что это может стать немного болезненным для использования этого решения, но это можно сделать за 5 секунд, когда вы будете пить кофе, а также делегировать кому-либо в качестве очень простой задачи. Если необходимо, я уверен, что вы можете получить скрипт, который автоматически открывает страницу ur на этом URL в определенное время, выбирает все и использует Linky. Должно быть проще, чем выяснять способ отклонения Facebook от CURL для этой задачи.

Смежные вопросы