2011-03-10 19 views
108

हम लिंक का प्रयोग किया:फेसबुक शेयरर कैश को कैसे साफ़ करें?

http://www.facebook.com/sharer.php?u=[shared URL] 

... एक विशेष पेज साझा करने के लिए। हालांकि, फेसबुक शेयरर छवियों और शीर्षक के कैश किए गए संस्करण का उपयोग करता है। क्या फेसबुक कैश को तुरंत साफ़ करने का कोई तरीका है या डेटा को अपडेट होने तक हमें कितनी देर प्रतीक्षा करनी है?

मैंने टैग के बीच <link rel='image_src' href='[preview image]' /> रखा।

उत्तर

228

मुझे मेरी समस्या का समाधान मिला। आप इस साइट के लिए जा सकते हैं:

https://developers.facebook.com/tools/debug

... तो पेज आप साझा करना चाहते का URL में डाल दिया, और क्लिक करें "डिबग"। यह स्वचालित रूप से आपके मेटा टैग पर सभी जानकारी निकाल देगा और कैश को भी साफ़ करेगा।

+1

क्या एक ही चीज़ पाने के लिए स्वचालित रूप से जावास्क्रिप्ट के साथ कोई तरीका है? मेरी साइट में वे पृष्ठ हैं जो अक्सर उनका नाम बदल सकते हैं। मैं कैश के फेसबुक रीसेट के 24 घंटों का इंतजार नहीं करना चाहता, न ही मैं हर बार फेसबुक लिंट पर जा सकता हूं। मैंने फेसबुक लिंट (https: //developers.facebook.com/tools/debug/og/object? Q = ... url के रूप में) के साथ AJAX अनुरोध का उपयोग करने का प्रयास किया है लेकिन प्रतिक्रिया यह है कि q मान (पैरामीटर के रूप में पारित) यूआरएल के ऊपर) एक्सेस-कंट्रोल-ऑब्जेक्ट-ऑरिजन द्वारा अनुमति नहीं है। –

+0

@Govovanni Chetelodicoafare, https://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fyour- पर जाने के लिए क्रॉन जॉब (लिनक्स) या निर्धारित कार्य (विंडोज़) का उपयोग करने का प्रयास करें। website.com। अधिकांश होस्टिंग प्रदाताओं के व्यवस्थापक पैनल में क्रॉन नौकरियां उपलब्ध हैं। –

+3

यदि आपको अभी भी इसे रीफ्रेश करने में समस्या हो रही है, तो अपने यूआरएल के अंत में एक यादृच्छिक क्वेरी स्ट्रिंग पैरामीटर जोड़ने का प्रयास करें। –

3

मुझे लगता है कि इन दो लिंकों में आपकी समस्या से संबंधित सामग्री पर व्यापक चर्चा है। अमेरिकन प्लान:

 
fbml.refreshRefUrl 

इस

 
<tt>fbml.refreshRefUrl("http://www.mysite.com/someurl.php") 

आप यहाँ fb:ref से संबंधित सामान की तरह अध्ययन कर सकते हैं फोन करके स्पष्ट cashes के रेफरी। मुझे आशा है कि यह आपके लिए काम करेगा

10

उपयोग एपीआई Is there an API to force Facebook to scrape a page again?

$furl = 'https://graph.facebook.com'; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $furl); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
$params = array(
    'id' => '<update_url>', 
    'scrape' => true); 
$data = http_build_query($params); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

curl_exec($ch); 
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
+3

यह अब access_token के बिना काम नहीं करता है। – andrewtweber

9

फेसबुक के रूप में अद्वितीय प्रत्येक यूआरएल व्यवहार करता है और कि यूआरएल के आधार पर पृष्ठ कैश, इसलिए यदि आप नवीनतम यूआरएल साझा करना चाहते हैं सरल समाधान के साथ एक क्वेरी स्ट्रिंग को जोड़ने के लिए है यूआरएल साझा किया जा रहा है। सरल शब्दों में यूआरएल के अंत में बस? V = 1 जोड़ें। कोई भी संख्या के 1.

Hat टिप जगह में इस्तेमाल किया जा सकता: Umair Jabbar

+0

मुझे लगता है कि इससे आपके पृष्ठ को प्राप्त होने वाले लिंक की संख्या प्रभावित होगी, क्योंकि उन्हें प्रत्येक संस्करण के लिए गिना जाएगा, है ना? –

3

पेज इस https://developers.facebook.com/tools/debug/ पर है और अन्य कुछ उत्तर के बाद से थोड़ा बदल गया है क्या करना है।

वहां अपना यूआरएल चिपकाएं और "डीबग" दबाएं। फिर यूआरएल टेक्स्ट फ़ील्ड के नीचे "नई स्क्रैप जानकारी" बटन दबाएं और आपको पूरा सेट होना चाहिए। यह आपके पृष्ठ से ताजा मेटा टैग खींच देगा, लेकिन वे अभी भी कैश करेंगे इसलिए ध्यान रखें कि जब भी आप उन्हें बदलते हैं तो आपको ऐसा करने की आवश्यकता होगी। यदि आप एफबी साझा यूआरएल प्राप्त करने के लिए मेटा टैग के साथ खेल रहे हैं तो यह वास्तव में महत्वपूर्ण है कि आप उन्हें फेसबुक के अंदर किस तरह से प्रारूपित करना चाहते हैं।

1

यूआरएल में एक? V = random_string संलग्न करें। यदि आप फेसबुक शेयर के साथ इस विचार का उपयोग कर रहे हैं, तो सुनिश्चित करें कि og: प्रतिक्रिया में url param आपके द्वारा साझा किए जाने वाले यूआरएल से मेल खाता है। यह Google प्लस के साथ भी काम करेगा।

फेसबुक के लिए, आप भी रीक्रॉल एक पोस्ट अनुरोध बनाकर https://graph.facebook.com

{id: url, 
scrape: true} 
+0

यह वही है जो मैं ढूंढ रहा था। – Bee

+0

मुझे पोस्टमैन में उपरोक्त JSON पोस्ट करने के लिए यह नहीं मिल सका, लेकिन कच्चे टेक्स्ट स्ट्रिंग को पोस्ट करने से रीफ्रेश हुआ: 'id = http: // www.ridr.me और scrape = true' –

2

इस उत्तर डेवलपर्स के लिए करना है करने के लिए मजबूर कर सकते हैं।

कैश साफ़ करने का अर्थ है कि इस वेबपृष्ठ के नए शेयर ओजी टैग में प्रदान की गई नई सामग्री दिखाएंगे। लेकिन केवल अगर यूआरएल जिस पर आप काम कर रहे हैं तो 50 से कम इंटरैक्शन (पसंद + शेयर) से कम है। यह इस वेबपृष्ठ के पुराने लिंक को भी प्रभावित नहीं करेगा जो पहले से ही फेसबुक पर पोस्ट किया गया है। केवल फेसबुक पर यूआरएल साझा करते समय ही फेसबुक दिखाएगा कि लिंक अपडेट किया जाएगा।

catandmouse का उत्तर सही है लेकिन आप ग्राफ.facebook.com पर पोस्ट अनुरोध भेजकर ओजी (ओपनग्राफ) कैश को साफ़ कर सकते हैं (इस उत्तर के लेखन के रूप में http और https दोनों के लिए काम करता है)। आपको एक्सेस टोकन की आवश्यकता नहीं है।

graph.facebook.com लिए एक पोस्ट अनुरोध के रूप में देख सकते हैं इस प्रकार है:

POST/HTTP/1.1 
Content-Type: application/x-www-form-urlencoded 
Host: graph.facebook.com 
Content-Length: 63 
Accept-Encoding: gzip 
User-Agent: Mojolicious (Perl) 

id=<url_encoded_url>&scrape=true 

पर्ल में, आपको निम्न कोड जहां पुस्तकालय मोजो :: UserAgent HTTP अनुरोध भेजने और प्राप्त करने के लिए इस्तेमाल किया जाता है का उपयोग कर सकते हैं:

sub _clear_og_cache_on_facebook { 
    my $fburl  = "http://graph.facebook.com"; 
    my $ua  = Mojo::UserAgent->new; 
    my $clearurl = <the url you want Facebook to forget>; 
    my $post_body = {id => $clearurl, scrape => 'true'}; 
    my $res  = $ua->post($fburl => form => $post_body)->res; 
    my $code  = $res->code; 
    unless ($code eq '200') { 
     JIX::Log->warn("Clearing cached OG data for $clearurl failed with code $code."); 
     } 
    } 
} 

टर्मिनल के माध्यम से इस पोस्ट अनुरोध भेजा जा रहा निम्न आदेश के साथ किया जा सकता है:

curl -F id="<URL>" -F scrape=true graph.facebook.com 
0

यदि आप कैश प्लगइन के साथ वर्डप्रेस का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप अपने सभी कैश साफ़ कर लें। यह भी सुनिश्चित करें कि आपके द्वारा उपयोग की जा रही छवि में अनुशंसित फेसबुक आकार है: 1200 (डब्ल्यू) x 630 (एच) या 600 x 315.

0

मैंने अभी एक साधारण समाधान पोस्ट किया है जिसमें यहां एक संबंधित पोस्ट पर 5 सेकंड लगते हैं - Facebook debugger: Clear whole site cache

संक्षिप्त उत्तर ... परमालिंक सेटिंग्स में एक वर्डप्रेस सेटिंग्स पर अपने परमालिंक को एक कस्टम पर बदलें। मैंने अभी अंडरस्कोर जोड़ा है।
/_% पोस्टनाम%/
तो फेसबुक उन्हें सभी नए यूआरएल, नई पोस्ट के रूप में स्क्रैप करता है।

0

यदि आपने प्रबंधित वर्डप्रेस या कैशिंग प्लगइन का उपयोग किया है, तो आपको फेसबुक डिबगर टूल नई जानकारी प्राप्त करने से पहले अपने कैच को साफ़ करना होगा!

मैं अपने बालों को हफ्तों के लिए खींच रहा हूं यह पता लगाने के लिए कि क्यों मैंने किए गए परिवर्तन 24 घंटे के लिए फेसबुक डीबगर में दिखाई नहीं देंगे !!!! फिक्स मुझे अपने वर्डप्रेस डैशबोर्ड में जाना है, शीर्ष पर गॉडडी आइकन पर क्लिक करें, और "फ्लश कैश" पर क्लिक करें। मुझे लगता है कि कई प्रबंधित वर्डप्रेस होस्टर्स को यह पता लगाने के लिए एक कैश है कि इसे कैसे साफ़ किया जाए और आप सुनहरे होंगे।