我知道Facebook首次访问网站时会为您网站上的特定网页缓存相似数据,并且进入调试程序页面的网址会清除缓存。但是,我们现在改进了我们的Facebook描述/图像/等,我们需要刷新整个网站的缓存(大约300页)。
有没有一种简单的方法可以做到这一点,或者如果我们需要编写例程来逐一纠正它们,那么实现这一目标的最佳方法是什么?
答案 0 :(得分:3)
有一种简单的方法可以做到这一点,
不像清除整个域的缓存那样简单,没有。
或者如果我们需要编写一个例程来逐一纠正它们,那么实现这个目标的最佳方法是什么?
您可以通过发出以下命令来重新抓取Open Graph URL:
https://graph.facebook.com/?id=<URL>&scrape=true&access_token=<app_access_token>
所以你必须在300个对象的循环中这样做。但是不要太快,否则你可能会达到你的应用程序速率限制 - 尝试在请求之间留下几秒钟,根据FB开发人员组最近的讨论应该可以正常工作。 (并且在将其插入API请求URL之前,不要忘记对<URL>
值进行URL编码。)
答案 1 :(得分:2)
wordpress中的简单解决方案,转到固定链接并更改永久链接并使用自定义永久链接,在我的情况下,我只是添加了一个下划线,所以这样做...
/ _%postname%/
Facebook然后没有关于(现在)新网址的信息,所以他们把它全部搞清楚。
我一直在寻找同样的答案,所有的答案对于我来说都是非常复杂的非编码器。
原来有一个非常简单的答案,我自己想出来:)。
我有一个wordpress网站,通过各种插件,我已批量上传超过4,000张图片,创建了4,000个帖子。
问题是我上传了它们,然后在排序og:meta标签问题之前尝试设置facebook共享插件,因此FB没有og:meta总共删除了4,000个帖子,所以当我添加它们时它没有任何区别。由于我有超过4k的帖子,因此无法使用fb调试器。
我必须承认我有点兴奋,多年来我从谷歌搜索中得到了有用的答案,将我发送到这个论坛。通常我发现的建议完全超出了我的头脑,因为我不是编码员,我是一个“复制贴纸”。
我很高兴能够回馈这个伟大的论坛并帮助其他人:)
答案 2 :(得分:1)
嗯,我也有相同的场景,并使用黑客,它的工作,但很明显,因为@Cbroe在他的回答中提到API调用有一些限制速率限制所以我想你应该照顾它在我的情况下,我只有100个重新抓取的网址。
所以这是解决方案:
$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!";