2012-07-10 62 views
0

我有一个网站,每次访问根页面时都会生成一个随机引用:www.hedbergism.com。Facebook使用旧的描述值:

我正在努力为其添加一个类似按钮并添加了所有Open Graph元标记。我已经通过Facebook调试器运行它,并且它读取我所有的标签都很好,并表示没有问题。

我想要发生的是,当有人点击赞时,它会共享一个链接到页面,描述将是他们当前正在查看的报价。这是og:description设置的内容。

实际发生的事情是,他们点击,并且发布到他们的时间轴上的内容是上次Facebook刮掉页面时发生的。如果我通过Facebook调试器运行该页面,那么返回的报价变成总是在Like页面中显示的新报价。

因此,它几乎就像Facebook使用它的缓存版本的og:description,而不是来源中的内容。这是如何工作,或者我做错了什么?

回答

1

这就是它的工作原理,如果你每天都在不断地改变它,那么你需要让刮板重新刮擦页面。

Facebook每24小时刮一次您的页面以确保属性是最新的。当Open Graph页面的管理员点击Like按钮并将URL输入到Facebook URL Linter中时,页面也会被抓取。 Facebook会在您的网址上观察缓存标头 - 它会按照首选项的顺序查看“过期”和“缓存控制”。但是,即使您指定的时间较长,Facebook也会每24小时刮一次页面。

Facebook的做法是每个URL都是一个对象,对象不会动态改变。

+0

所以我的meta标签的目的是为了刮板而不是实际的按钮本身? – 2012-07-10 21:31:18

+0

@Dan类似按钮和调试器使用相同的刮刀。 meta标签的目的是为您的网站在Facebook上发布时提供丰富的信息。一旦你改变了meta标签,你就可以打破前几天的所有喜欢。 – phwd 2012-07-10 21:33:18

+0

考虑到phwd的回复,也许你可以在有人访问时重写基本域,以便重写器每天添加一个查询字符串参数。例如。 www.hedbergism.com/?123 - 我认为这会让每一天都像是绑定到一个特定的URL,因此被缓存为一个独特的对象。当然,需要进行测试! – Snouto 2012-07-10 23:03:16