如何清除共享链接缓存?

时间:2011-09-07 05:09:48

标签: facebook hyperlink share

我尝试在个人资料页面的“更新状态”下共享例如http://apps.facebook.com/appname/的链接。修改应用程序的内容后,它仍然显示缓存。我尝试使用http://developers.facebook.com/tools/debug清除缓存,但结果仍然相同。任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:4)

您可以直接使用Object Debugger。只需将您的URL粘贴到那里,然后点击Debug。

你可以告诉facebook在https://graph.facebook.com的POST请求中使用“scrape = true”post参数重新抓取内容。 Facebook docs

中的更多详细信息

答案 1 :(得分:0)

  • 等待。
  • 尝试再次提取该网址或告诉任何人为您做这件事(可能有imedate效果)
  • 等待。

答案 2 :(得分:0)

试试这个:

$fbURL = 'https://developers.facebook.com/tools/debug/og/object?q=';
$shareURL = '<YOUR URL>';
$excuteURL = $fbURL.urlencode($shareURL)."&format=json";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $excuteURL);
//curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
$data = curl_exec($ch);
curl_close($ch);

请注意,您需要传递用户代理,因为Facebook Server需要解析该请求。

答案 3 :(得分:0)

我遇到了这个问题,但它是用特定的帖子而不是整个网站。我在调试器中获取缓存以在更新我的博客帖子后显示正确的图片,但是当我将链接发布为状态时,Facebook仍然显示旧图片。我不想等一天看它是否会最终改变,所以我做了本页概述的内容:

https://webapps.stackexchange.com/questions/18468/adding-meta-tags-to-individual-blogger-posts

换句话说,就像这样:

<b:if cond='data:blog.url == "http://urlofyourpost.com"'>
  <meta content='http://urlofyourimage.png' property='og:image'/>
 </b:if>

基本上,您要将if语句硬编码到页面的HTML中,以便更改元素内容以适应您为该帖子所做的任何更改。这是一个混乱的解决方案,但它的工作原理。

答案 4 :(得分:-1)

以上方法对我不起作用。但是,我已经使用javascript来清除缓存并在facebook中获取最新内容。

if(window.location.search.indexOf("facebook_refresh") >= 0) {
    //Feature check browsers for support
    if(document.addEventListener && window.XMLHttpRequest && document.querySelector) {
        //DOM is ready
        document.addEventListener("DOMContentLoaded", function() {
            var httpRequest = new XMLHttpRequest();
            httpRequest.open("POST", "https://graph.facebook.com", true);

            httpRequest.onreadystatechange = function () {
                if (httpRequest.readyState == 4) { 
                    console.log("httpRequest.responseText", httpRequest.responseText); 
                }
            };

            //Default URL to send to Facebook
            var url = window.location;

            //og:url element
            var og_url = document.querySelector("meta[property='og:url']");

            //Check if og:url element is present on page
            if(og_url != null) {
                //Get the content attribute value of og:url
                var og_url_value = og_url.getAttribute("content");

                //If og:url content attribute isn't empty
                if(og_url_value != "") {
                    url = og_url_value;
                } else {
                    console.warn('<meta property="og:url" content=""> is empty. Falling back to window.location');
                }               
            } else {
                console.warn('<meta property="og:url" content=""> is missing. Falling back to window.location');
            }

            //Send AJAX
            httpRequest.send("scrape=true&id=" + encodeURIComponent(url));
        });
    } else {
        console.warn("Your browser doesn't support one of the following: document.addEventListener && window.XMLHttpRequest && document.querySelector");
    }
}