2012-01-25 81 views
0

我在我的網站上分享facebook內容時遇到問題。它實現了'喜歡'按鈕,但是當你喜歡'你的臉譜上的圖片顯示舊圖片(有意圖緩存的圖片)。這個網站上的東西就是這樣的......每天都有一個女孩的新照片,但url總是一樣的(由apache重寫)。用cURL和lint清除Facebook共享緩存

我必須找到一些方法來自動和定期(當新的圖片設置在網站上)明確的Facebook緩存。

當我把我想要刷新緩存的url直接放在fb調試工具(lint)窗體中並按下'debug'時,當somobody喜歡我網站上的內容時清除緩存並刷新內容。

但問題是,當我嘗試刷新緩存automaticaly(通過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-danahttp://www.vecernji.hr/decko-dana

有誰知道我爲什麼不能通過PHP腳本,wget或捲曲刷新緩存的原因,但是當我把直接和手動的給定的URL在皮棉表單,並按提交按鈕的內容刷新?

回答

0

請參閱鏈接到我的前面的回答下面的facebook上緩存的更多信息:

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

+0

我看到了這一點,但不適合我,因爲我要「攻擊」林特工具自動,用一些PHP腳本。問題是當我手動去林特網址,並把我希望清除緩存文本框中的一切都很好的url。緩存被清除。但是當我嘗試使用wget或cURL等工具來實現時,它不起作用。高速緩存未被清除。我想我可以使用wget或cURL,因爲我們把url放在緩存中的表單使用簡單的GET請求。 –

+0

這取自[documentation](https://developers.facebook.com/docs/opengraphprotocol/):'curl https://developers.facebook.com/tools/lint/?url={YOUR_URL}&format= json'。 'cURL'代碼會強制你的URL被刮掉* ... – Lix

2

我碰到這個偶然,因爲一個類似的腳本,我在工作狀態下突然不再也做不到了。我想Facebook禁止這個,因爲很多人都在使用它,並造成沉重的負擔。

無論如何,爲了節省時間,我可以做的下一件最好的事情是製作一個腳本,輸出到需要刷新的lint工具的所有鏈接。然後,我使用Linky這樣的工具一次打開所有鏈接。巴姆,所有的緩存清除。

如果你需要一天,我想這可能變得有點痛苦的使用該解決方案這樣做一次,但它可以在5秒內完成,而喝咖啡,也委託給任何人作爲它的一個非常簡單的任務。如果需要,我相信你可以得到一個腳本,在特定的時間自動打開你的URL頁面,選擇所有並使用Linky。應該比找出Facebook對CURL不贊成這項任務的方式要容易得多。