如何强制Facebook Like按钮重新抓取我的页面?

时间:2012-10-05 19:48:05

标签: facebook caching facebook-like facebook-likebox

我在页面(http://www.usna.edu/BillAF/game.php)上创建了一个类似按钮,用于发送其父页面的URL /数据。不幸的是,当我第一次使用它时,页面的旧版本位于父页面的位置,该页面上没有打开的图形元标记。

所以当有人“喜欢”这个页面时,它会在白色和灰色的方块上发送错误的标题和一半字母“e”的“垃圾”图像。

我查了一下:http://developers.facebook.com/tools/debug并且它有更新的信息。我还尝试将关联的AP ID更改为新的ID,当我“喜欢”它时,似乎都没有刷新它发送的内容。我也尝试将index.php添加到它应该发布的URL的末尾(http://www.usna.edu/BillAF),但无济于事。

我有什么办法可以强迫它重新刮页吗?如果没有,有没有人知道facebook需要多长时间才能自行重新填写它?

2 个答案:

答案 0 :(得分:3)

清除facebook缓存图像和文本的一个好方法是运行调试器工具:

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

通过放置您在那里分享的网址,它将从您的网站刷新Facebook缓存。

答案 1 :(得分:0)

Facebook has an API用于重新抓取页面数据,我使用以下函数:

function purgeFacebookCache($url, $debug=false) {

    // Set the variables for Facebook
    $fields = array(
        'id' => urlencode($url), 
        'scrape' => true
    );
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    rtrim($fields_string,'&');

    // Connect
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'https://graph.facebook.com');
    curl_setopt($ch,CURLOPT_POST,count($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
    $result = curl_exec($ch);

    // Debug
    if ($debug) {
        var_dump($result);
    }

}