1

我知道 Facebook 会在您第一次访问您网站上的特定页面时缓存它们的 Like 数据,并且将 url 输入调试器页面会清除缓存。但是,我们现在已经改进了 Facebook 描述/图像/等,我们需要刷新整个站点(大约 300 个页面)的缓存。

有没有一种简单的方法可以做到这一点,或者如果我们需要编写一个例程来逐个纠正它们,那么实现这一点的最佳方法是什么?

4

3 回答 3

3

有没有一种简单的方法可以做到这一点,

不像清除整个域的缓存的按钮那么简单,不。

或者如果我们需要编写一个例程来一一纠正它们,那么实现这一点的最佳方法是什么?

您可以通过向以下位置发出 POST 请求来重新抓取 Open Graph URL:

https://graph.facebook.com/?id=<URL>&scrape=true&access_token=<app_access_token>

因此,您必须为 300 个对象循环执行此操作。但是不要做得太快,否则你可能会达到你的应用程序速率限制 - 尝试在请求之间留出几秒钟,根据 FB 开发人员组最近的讨论应该可以正常工作。(并且不要忘记在将<URL>值插入 API 请求 URL 之前正确地对值进行 URL 编码。)

于 2012-11-16T16:14:02.203 回答
2

wordpress 中的简单解决方案,转到永久链接并更改永久链接并使用自定义永久链接,在我的情况下,我只是添加了一个下划线,所以这样做了... /_%postname%/

Facebook 然后没有关于(现在)新的信息网址,以便他们将其全部刮掉。

我一直在寻找相同的答案,但作为非编码人员,所有答案对我来说都非常复杂。

原来有一个非常简单的答案,我自己想出了这一切:)。

我有一个带有各种插件的 wordpress 网站,我已经批量上传了 4,000 多张图片,这些图片创建了 4,000 条帖子。
问题是我上传了它们,然后在对 og:meta 标签问题进行排序之前尝试设置 facebook 共享插件,因此 FB 抓取了总共 4,000 个帖子而没有 og:meta,所以当我添加它们时没有任何区别。无法使用 fb 调试器,因为我有超过 4k 个帖子。

我必须承认我有点兴奋,多年来我从谷歌搜索中得到了有用的答案,把我送到了这个论坛。通常我发现的建议远远超出我的想象,因为我不是编码员,我是一个“复制粘贴”。

我很高兴能够回馈这个伟大的论坛并帮助其他人:)

于 2017-05-09T14:22:00.893 回答
1

好吧,我也遇到了相同的情况并使用了 hack 并且它可以工作,但显然正如@Cbroe 在他的回答中提到的那样,API 调用对速率限制有一些限制,所以我想你应该注意它,在我的情况下,我只有 100 个 URL重新刮。

所以这里是解决方案:

$xml = file_get_contents('http://example.com/post-sitemap.xml'); // <-- Because i have a wordpress site which has sitemap.

$xml = simplexml_load_string($xml); // Load it as XML
$applicationAccessToken = 'YourToken'; // Application Access Token You can get it from https://developers.facebook.com/tools/explorer/    

$urls = [];
foreach($xml->url as $url) {
    $urls[] = $url->loc; // Get URLS from site map to our new Array
}

$file = fopen("response.data", "a+"); // Write API response to another file so later we can debug it.
foreach($urls as $url) {
    echo "\033[Sending URL for Scrape $url \n";
    $data = file_get_contents('https://graph.facebook.com/?id='.$url.'&scrape=true&access_token='.$applicationAccessToken);

    fwrite($file, $data . "\n"); //Put Response in file
    sleep(5); // Sleep for 5 seconds!
}
fclose($file); // Close File as all the urls is scraped.

echo "Bingo  It's Compelted!";
于 2017-07-27T09:01:06.227 回答