Facebook Open Graph不清除caching
使用Open Graph我的元标记遇到麻烦。 看起来好像Facebook正在caching我的meta标签的旧值。 属性og:title
和og:url
旧值仍然被使用,即使我已经改变了它们。
我在我的网站上的一个页面上运行了Lint,
请注意, og:title
和og:url
有两个值,最后一个值为主。 但是, 最后两个条目是我用于此网站的旧条目 。 我现在正在使用这些元标记(您可以validation您是否查看HTML的源代码):
<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt – værdi 1.099 kr – køb nu kun 599 kr "/> <meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/> <meta property="og:type" content="product"/> <meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/> <meta property="og:image" content="http://pinq.dk/wp-content/themes/pinqhttp://img.dovov.comlogo-top.png"/> <meta property="og:site_name" content="Pinq" /> <meta property="fb:app_id" content="161840830532004" />
为什么Facebookcachingog:title
和og:url
? 有没有人遇到同样的问题?
- 转到http://developers.facebook.com/tools/debug
- 通过
fbrefresh=CAN_BE_ANYTHING
input以下URL
例子:
-
http://www.example.com?fbrefresh=CAN_BE_ANYTHING
-
http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
- 或访问:
http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912
:http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912
:http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912
昨晚我有同样的问题,我从一些网站得到了这个解决scheme。
Facebook保存您的caching缩略图。 即使从服务器上删除thumnail /图像,它也不会刷新。 但Facebook允许您使用fbrefresh
进行刷新
我希望这有帮助。
最被投票的问题是相当过时的:
这是2014年11月应该使用的唯一两个选项:
对于非开发人员
- 使用FBdebugging器: https : //developers.facebook.com/tools/debug/og/object
- 粘贴你想重新caching的url。 (请确保您使用您的og:url标签中包含的相同url)
- 再次单击获取刮擦信息button
对于开发人员
- 以编程方式进行GET调用以访问此URL: https : //graph.facebook.com/?id=[YOUR_URL_HERE ] &scrape=true (请参阅: https : //developers.facebook.com/docs/games_payments/takingpayments#scraping )
- 确保该页面头部包含的og:url标记与您传递的标记相匹配。
- 你甚至可以parsingJSON响应来获取该URL的份额。
有关更新图像的附加信息
- 如果og:图片的URL保持不变,但图片实际上已经改变,即使这样做,也不会被Facebook刮板更新或回收。 (即使在图像url的末尾传递?last_update = [TIMESTAMP]也不适用于我)。
- 唯一有效的解决方法是为图像指定一个新名称。
有关之前发布的post的图片或video更新的说明:
- 当您调用debugging器来取消页面上的og:标记的更改时,该URL的所有以前的Facebook共享仍将显示旧的图像/video。 没有办法更新所有以前的post,这是出于安全原因devise的方式。 否则,有人可以假装用户分享他/她实际上没有的东西。
如果你有很多页面,而且不想手动刷新它们,你可以自动完成。
可以说,你有用户个人资料页面的照片:
$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile; $user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo; <meta property="og:url" content="<?php echo $url; ?>"/> <meta property="og:image" content="<?php echo $user_photo; ?>"
只需将其添加到您的页面即可:
// with jQuery $.post( 'https://graph.facebook.com', { id: '<?php echo $url; ?>', scrape: true }, function(response){ console.log(response); } ); // with "vanilla" javascript var fbxhr = new XMLHttpRequest(); fbxhr.open("POST", "https://graph.facebook.com", true); fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); fbxhr.send("id=<?php echo $url; ?>&scrape=true");
这将刷新Facebookcaching。 如果您使用jQuery解决scheme,请查看console.log中的“响应” – 您将在其中find“updated_time”字段和其他有用的信息。
即使传递了fbrefreshvariables,OG缩略图也不会刷新。 要不等待自动清除,就需要更改缩略图相关元标记值的文件名并进行刷新。
基本上,答案是耐心;)
我今天早上检查了Linter,并且og:title和og:url正确显示,没有冗余值。 我猜FaceBook自动清除它的caching在一定的时间间隔。 我只需要等待。
是的,Facebook每隔24小时自动清除一次caching:实际上,Facebook会每24小时刷新页面并更新一次caching。https://developers.facebook.com/docs/reference/plugins/like/#scraperinfo 。
我们刚刚遇到了这个,事实certificate,我们不是linting正确的url,因为真正的url有一个查询string(杜,不同的页面,就一个机器人而言)。
http://example.com/
!==
http://example.com/?utm_campaign=foo
linter 会重新caching你的页面,你不必等待。
Ooook,最后它帮助了(我使用IP.Board)。 我所要做的是:
- 更改我网站上的og:image的url(常规configuration)。
- 用?fbrefresh = 1154464gd56试试这个方法
感谢作者为这个线程!
编辑:什么是你需要记住的形象要求更多。 现在(2013年1月)是: – 两个方向至less200像素 – 最大比例3:1
- 访问FB页面https://developers.facebook.com/tools/debug/og/object/
- input你的域名。
- 点击button“获取新的刮擦信息”
- 完成
有一件事要补充,url是区分大小写的 。 注意:
apps.facebook.com/ HELLO
然后在棉绒的眼睛里是不同的
apps.facebook.com/ hello
请务必使用在应用程序的开发人员设置中input的确切网站url。 linter将返回属性,否则不会刷新caching。
我有使用og:image
的相同的问题,几次尝试重命名文件或清除FBcaching不工作通过facebookdebugging器或通过实际帐户testing。
新的facebook指南指出,图像尺寸应该是1200 x 630或者具有该纵横比,这似乎是错误的,唯一对我有用的是使用方形尺寸的图像。
编辑* Afew小时我回去使用1200×630,它神奇的工作,这是神奇的。
我也将文件重命名为f * ^ * kfacebook.jpg,不确定是否有帮助,但感觉很好。
我发现如果你的图像是72dpi,它会给你图像大小的错误。 改用96dpi。 希望这可以帮助。
-
粘贴到页面的url,然后点击debugging。 如果您的网站正在使用url别名,请确保您使用的是与Facebook共享的网页所使用的url相同的url(例如:在Drupal中使用节点/ *path而不是别名,如果网页是通过该url共享的话)。
- 点击“共享对话框”中的“共享预览”部分
Facebook开发人员文件说,标题属性有例外:
一旦有50个动作(喜欢,分享和评论)与某个对象相关联,您将无法更新其标题
https://developers.facebook.com/docs/sharing/opengraph/using-objects#update
我很抱歉,但正确的答案是:
没有傻瓜certificate的方式来更新打开graphicsog:图像url,立即结果。 它被caching到fb更新(据报每隔24小时)
这里有一些已经被别人报道过的东西,但是我已经有了成功的东西了。
- select“获取新的信息”
- 更改实际的图像文件名和/或删除原件
- 通过附加一个PHP TIMESTAMP或者任何东西来添加一个查询string到图片url
- 将“… yoursite.com/?fbrefresh=anything”查询string添加到debugging器提取url
- select页面底部的graphicsAPI链接
- select看到什么刮板看到 – 不要求实时的caching刮擦数据,它仍然显示caching的图像url,即使该文件不再存在
检查你的代码始终是确认这不是浏览器caching或某些caching服务的问题。 如果代码中的元信息是最新的,并且您已经尝试了上述所有内容(除非另有build议),否则正确的答案是您只能等待 。
有类似的经验。 网站链接显示在facebook生成的预览404。 结果是:url元数据是错误的。 几天前我们已经修好了,但预览中还是看到了404。 我们在https://developers.facebook.com/tools/debug/上使用了这个工具,并且强制刷新(不必按照方式附加任何参数)在我们的例子中,Facebook在24之后没有刷新caching小时,但工具帮助强制它。;
它是一个caching,它刷新,这是什么caching要做一次。 所以等待最终会奏效,但有时你需要更快地做到这一点。 改变文件名的作品。
我也有这个问题。 刮板显示正确的信息,但共享url仍填充旧数据。
我解决这个问题的方法是使用feed方法,而不是共享,然后手动填充数据(这不是使用share方法公开的)
像这样的东西:
shareToFB = () => { window.FB.ui({ method: 'feed', link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`, name: 'THIS WILL OVERRIDE OG:TITLE TAG', description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG', caption: 'THIS WILL OVERRIDE THE OG:URL TAG' }); };
对于我来说,所有的解决scheme都无法工 我发现如果你使用Yoastsearch引擎优化WordPress,那么你必须刷新这两个标签:
<meta property="article:modified_time" content="2017-09-29T00:37:33+02:00" /> <meta property="og:updated_time" content="2017-09-29T00:37:33+02:00" />
要刷新值,您必须提交对文章的任何更改。 如果你不改变这个dateFacebookcaching不会刷新。
您还可以通过在functions.php
添加filter来禁用这些附加标签:
add_filter( 'wpseo_og_article_published_time', '__return_false' ); add_filter( 'wpseo_og_article_modified_time', '__return_false' ); add_filter( 'wpseo_og_og_updated_time', '__return_false' );