Facebook的动态OG元数据


Dynamic OG meta data for Facebook

我有一个小网页,每天都会显示一个单词的答案——是或否——这取决于每天变化的其他因素。

在这个下面,我有一个类似Facebook的按钮。我希望这个按钮在标题/描述中发布"是"或"否",具体取决于当天的判决。

我已经使用php动态设置了OG元数据,以将正确的字符串回显到og:title等中。但Facebook缓存了该值,因此周二共享我的页面的人很容易将错误的内容发布到Facebook。

我已经通过使用Facebook对象调试器确认了这是一个问题。只要我强行刷新,一切都很好。我试图使用curl来实现自动化,但这似乎不起作用。

$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, "http://developers.facebook.com/tools/lint/?url={http://ispizzahalfprice.com}");
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

我是不是错过了一些简单的解决方法?还是我需要重新评估我的网站结构以获得我想要的内容(例如,使用两个单独的页面)?

这是一个页面,以防有用:http://ispizzahalfprice.com

使用两个独立的URL是安全的选择。正如您所观察到的,Facebook对URL抓取进行了大量缓存。您还看到,作为应用程序的管理员,您可以通过再次通过调试器拖动页面来刷新和刷新Facebook的缓存。

使用两个URL可以解决这个问题,因为Facebook可以随心所欲地缓存结果!"是"answers"否"仍然会有一个单独的URL。