我可以强制刷新Facebook对象的图片网址吗?

时间:2013-10-16 17:26:06

标签: facebook image caching opengraph

我有几个由Facebook托管的对象,这些对象会发布到用户的活动日志中。图像的URL指向我们的内容交付解决方案,该解决方案重定向到版本化的图像。这意味着URL可以保持不变,但图像可能会更改。

正如您在此图片中看到的那样

Inconsistent Images in Object Browser

当图像发生变化时,Facebook仍然可以正确加载它(请参阅og:image列),但实际帖子中创建的图像(请参阅悬停文本,来自https://fbexternal-a.akamaihd.net/safe_image.php)似乎已缓存。我发现通过添加虚拟参数来更改URL是有效的(如果有必要,我们可以这样做),但如果有办法强制Facebook刷新其缓存图像,那就更好了。这样的电话或方法是否存在?

在类似的问题中,我听说过POST调用

https://graph.facebook.com/?id=[ID]&scrape=true

可以重新调整数据,但是我没有成功调用该调用(如果对象是自托管的,它似乎只会抓取数据,是吗?)。

还有一些关于向URL添加fbrefresh = [ANYTHING]的内容,但听起来这相当于添加一个虚拟参数。

此外,使用调试器似乎也没有做任何事情。我已经尝试过了:

- http://developers.facebook.com/tools/debug/og/object?q=[ID]
- http://developers.facebook.com/tools/debug/og/object?q=[ID]&refresh=[ANYTHING]
- http://developers.facebook.com/tools/debug/og/object?q=[Image URL]
- http://developers.facebook.com/tools/debug/og/object?q=[Image URL]&refresh=[ANYTHING]

另外

- http://graph.facebook.com/?id=[ID]&scrape=true

一切都无济于事。

最后,是否有人知道缓存是否可以正常刷新?或者预计图像会永远存在吗?

1 个答案:

答案 0 :(得分:6)

This document说:

Updating Objects

When an action is published, or a Like button pointing to the object clicked, Facebook will 'scrape' the HTML page of the object and read the meta tags. The object scrape also occurs when:

    The object URL is input in the Object Debugger
    Every 7 days after the first scrape
    When an app triggers a scrape using an API endpoint

This Graph API endpoint is simply a call to:

POST /?id={object-instance-id or object-url}&scrape=true

当您执行此scrape=true时,Facebook将转到og:url参数并在此站点上刮取所有og参数。因此,请确保此页面(og:url)具有相应的og:image元标记以及新的图像网址。

如果您更新图片,则需要重命名(update og:image url),否则facebook不知道您有新图片。