2012-04-18 34 views
4

我正在通過發佈他們玩Facebook的鏈接。第一次來自包含「facebookexternalhit」的用戶代理的訪問將訪問您的網站並查找some meta tags如何強制facebookexternalhit重新訪問?

到目前爲止這麼好,工程。但是,如果我嘗試重新發布鏈接,則不會發生任何調用。我如何觸發讓Facebook再次閱讀該頁面?

是否有一些API調用可用於觸發更新?

Like Button它說,在文檔中

回答

4

什麼時候Facebook的刮我的網頁?

Facebook需要刮你的網頁,知道如何顯示它圍繞 該網站。

Facebook每24小時刮一次您的頁面以確保屬性爲 最新。當Open Graph 頁面的管理員單擊「Like」按鈕時以及將URL輸入到 Facebook URL Linter中時,該頁面也會被抓取。 Facebook會在您的網址上觀察緩存標頭 - 它會按照首選項的順序查看「過期」和「緩存控制」。 但是,即使您指定的時間較長,Facebook也會每24小時刮一次您的 頁面。

刮板的用戶代理是: 「facebookexternalhit/1.1 (+ HTTP://www.facebook.com/externalhit_uatext.php)」

的短絨是現在已知的Facebook Debugger和時你使用它作爲url,它會清除facebook緩存中的相同url,然後緩存新的結果。

+0

但我不使用如按鈕呢。我只是在談論發佈鏈接。這是否以同樣的方式威脅?用戶發佈會在24小時後更新嗎? – rekire 2012-04-18 07:54:46

+0

我只是從Like Button文檔中獲取了該部分,但具體信息更一般。他們可能應該找到另一個地方來放置它,但現在它在那裏。重點是使用調試器可以強制緩存清理,只需嘗試一下。 – 2012-04-18 07:58:22

+0

感謝關於Facebook調試器的信息,在mod_security拒絕facebookexternalhit之後,我能夠強制新的刮擦,並刪除了規則。 – dangel 2016-01-27 05:00:22

0

您可以使用的一個技巧是簡單地將「隨機」GET參數附加到您共享的URL。它不會對頁面內容產生任何影響,但會導致Facebook的刮板機器人重新訪問您的網站。

原始網址:

http://example.com 
http://example.com?param=1 

新網址將強制 「重新訪問」:

http://example.com?cache_buster=784932789532 
http://example.com?param=1&cache_buster=784932789532