Facebook Open Graph没有清除缓存

Ard*_*ram 172 facebook opengraph

我用Open Graph的meta标签遇到了麻烦.好像Facebook正在缓存我的meta标签的旧值.旧值的属性og:titleog:url仍在使用,即使我已经改变了他们.

在我的网站的页面上运行了Lint ,这出现了:

Facebook Open Graph lint截图

请注意,有两个值为og:titleog:url,最后一个值占优势.但是,最后两个条目是我用于此站点的OLD条目.我现在正在使用这些元标记(您可以验证是否查看HTML的来源):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; 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/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />
Run Code Online (Sandbox Code Playgroud)

为什么Facebook缓存og:titleog:url?是否有人遇到同样的问题?

P.C*_*.C. 302

  1. 转到http://developers.facebook.com/tools/debug
  2. 输入以下URL fbrefresh=CAN_BE_ANYTHING

例子:

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. 或访问: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

我昨晚有同样的问题,我从一些网站得到了这个解决方案.

Facebook保存您的缓存缩略图.即使您从服务器中删除了thumnail/image,它也不会刷新.但是Facebook允许你通过使用来刷新fbrefresh

我希望这有帮助.

  • param**fbrefresh**可能没有必要,因为调试工具在没有它的情况下刷新对象. (28认同)
  • 不真实,添加该参数对调试工具的操作没有任何影响 - 在调试工具或刮刀代码中没有任何对该参数的引用 (25认同)
  • 除非您使用此参数,否则它不会清除任何缓存. (7认同)
  • 不需要使用fbrefresh参数,但您需要以拥有该域的FB应用程序的管理员身份登录,否则缓存将不会更新. (7认同)
  • 我可以验证添加fbrefresh参数对我有用.如果我共享了URL,它会使用旧数据,即使调试器显示正确的数据.但是一旦我使用带有fbrefresh参数的调试器,那么即使普通共享也使用了正确的数据. (3认同)
  • 附加了fbrefresh你只是给对象调试器一个不同的URL来缓存,如果你返回到有问题的url它仍然是相同的 (2认同)
  • 我需要使用参数来更新我的缓存,并记住你可能需要每次更改它,即?refresh = 1,?refresh = 2,?refresh = 3等 (2认同)
  • 就我而言,它不会刷新缓存.我的意思是支付产品,它仍然使用缓存的.. (2认同)
  • fbrefresh对我不起作用,facebook仍然有一个旧的缓存. (2认同)
  • 没有为我刷新 (2认同)
  • 添加`?anything`使它"看起来"像它的工作原理.实际上,再次测试常规URL会产生相同的旧结果. (2认同)

Ori*_*ban 80

投票最多的问题已经过时了:

这些是截至2014年11月应该使用的唯一两个选项:

对于非开发人员

  1. 使用FB调试器:https://developers.facebook.com/tools/debug/og/object
  2. 粘贴要重新缓存的网址.(确保使用og:url标记中包含的相同网址)
  3. 再次单击Fetch Scrape信息按钮

对于开发人员

  1. 以编程方式对此URL进行GET调用:https://graph.facebook.com/?id = [YOUR_URL_HERE ] &scrape = true(请参阅:https://developers.facebook.com/docs/games_payments/takingpayments#scraping)
  2. 确保该页面头部包含的og:url标记与您传递的标记匹配.
  3. 您甚至可以解析json响应以获取该URL的份额数.

关于更新图像的其他信息

  • 如果og:图像URL保持不变但图像实际已经更改,即使执行上述操作,Facebook刮刀也不会更新或修复.(甚至在图片url的末尾传递?last_update = [TIMESTAMP]对我来说不起作用).
  • 对我来说唯一有效的解决方法是为图像指定一个新名称.

关于以前发布的帖子的图片或视频更新的说明:

  • 当您调用调试器以废弃页面的og:标签上的更改时,该URL以前的所有Facebook共享仍将显示旧图像/视频.由于安全原因,没有办法更新所有以前的帖子,这是出于设计的方式.否则,某人将能够假装用户共享他/她实际上没有的东西.

  • @Oriol当我最近尝试这个时,我不得不发帖到这个URL(根据https://developers.facebook.com/docs/sharing/opengraph/using-objects#update) (3认同)

Zho*_*ndr 19

如果您有许多页面并且不想手动刷新它们 - 您可以自动执行此操作.

假设您有带照片的用户个人资料页面:

$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; ?>"
Run Code Online (Sandbox Code Playgroud)

只需将其添加到您的页面:

// 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");
Run Code Online (Sandbox Code Playgroud)

这将刷新Facebook缓存.如果您使用jQuery解决方案,请查看console.log中的"response" - 您将找到"updated_time"字段和其他有用信息.


小智 12

即使传递fbrefresh变量,OG缩略图似乎也不会刷新.要在不等待自动清除的情况下更新此内容,您需要更改缩略图关联元标记值的文件名并刷新.


Wyc*_*yck 7

我使用时遇到了同样的问题og:image,通过Facebook调试器或通过实际帐户进行测试,多次尝试重命名文件或清除FB缓存均无效。

新的Facebook准则规定图像尺寸应为1200 x 630或具有该宽高比,这似乎是错误的,对我而言唯一有效的方法是使用正方形尺寸的图像。

编辑* 几个小时后,我又回到了1200 x 630的水平,它神奇地起作用了,这是神奇的。

我也将文件重命名为f * ^ * kfacebook.jpg,不确定它是否有帮助,但感觉很好。


Ard*_*ram 6

基本上,答案是耐心;)

今天早上我检查了Linter,并且og:title和og:url正确显示,没有多余的值.我猜FaceBook会在某个特定的时间间隔自动清除缓存.我只需要等待.

在此输入图像描述