【问题标题】:How to update facebook open graph image如何更新 facebook 打开图形图像
【发布时间】:2013-03-18 06:11:50
【问题描述】:

如果您通过开放图形协议的元标记为您的网页设置了 Facebook 图像,如下所示: <meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>

如果你想用另一个同名的图片替换/更新图片rock.jpg,当你分享页面时,你如何让facebook用新图片相应地更新你的图片?强制 facebook 使用此链接 http://developers.facebook.com/tools/debug 获取您的页面数据不会更新图像。

【问题讨论】:

    标签: facebook facebook-opengraph


    【解决方案1】:

    这是我对这个问题找到的最一致的答案:https://stackoverflow.com/a/21468084/339698

    如果你懒得去那个链接,你可以POST一个带有你想清除的url的ajax请求:

    $.post(
        'https://graph.facebook.com',
        {
            id: 'http://www.site.com/my/share/url/',
            scrape: true
        },
        function(response){
            console.log(response);
        }
    );
    

    【讨论】:

    • 这非常有效。这应该是最好的答案。
    • 我同意@Strawberry,如果您知道如何在控制台中使用 javascript/jQuery,此解决方案是立即生效的最佳解决方案。立即刷新他们的 og:image 缓存并且每次都有效。我会用这个做一个书签,谢谢:)
    • 辛苦了。谢谢!
    • 如果您可以访问 Facebook 开发人员工具,您也可以通过 developers.facebook.com/tools/debug/sharing 或通过 Graph API 资源管理器执行此操作,将 ?scrape=true&id=URL_TO_SCRAPE 放在 POST 字段中
    • 如果有人想使用版本化的图形 url,例如 https://graph.facebook.com/v2.6access_token 将是必需的。这可以是 Facebook 应用访问令牌,即 {APP_ID}|{APP_SECRET}
    【解决方案2】:

    Facebook 将您的图片存储到他们自己的服务器上,然后将其缓存 24 小时。缓存延迟将来可能会发生变化,因此要检查它只需打开 facebook 从您的图像创建的图像并检查其 http 标头中的“max-age”值。因此,如果您更改图像,即使您使用此链接 http://developers.facebook.com/tools/debug 强制获取数据,facebook 也不会在 24 小时之前更新其版本。

    要解决这个问题,如果您需要立即查看更改的效果,您应该重命名您的图像。因此,如果旧版本是 rock.jpg,则将其命名为 rock2.jpg,然后使用此链接 http://developers.facebook.com/tools/debug 让 facebook 从您更新的图像中创建新图像。这将立即更新您网页在 facebook 分享中的 facebook 图片。

    【讨论】:

      【解决方案3】:

      在这篇文章发表多年后,这仍然是一个问题,但它不是 facebook 的缓存:这通常是人为错误(请允许我详细说明)

      OG:TYPE 会影响您的图像抓取:

      1. https://ogp.me/#type_article 不一样 https://ogp.me/#type_website

      请注意 og:type=website 将导致该网址的任何 /sub-pages/ 变为“规范”。这意味着无论您做什么,都无法使用刮板更新图像。

      考虑一下这个“假设和常见错误”

      -<meta property="og:type" content="website" /> => https://www.example.org(父)
      -<meta property="og:type" content="website" /> => https://www.example.org/sub-page/
      -<meta property="og:type" content="website" /> => https://www.example.org/sub-page/child-2/
      - Ergo:/sub-page//child-2/ 将继承父级的 og:image

      那些不是“所有网站”,1是网站,其他是文章。

      如果您这样做,Facebook 会认为所有这些都是规范的,并且会将 FIRST og:image 放入所有这些中。 (试试看,你会看到) - 如果你将 og:url 设置为你的根域或父域,你告诉 facebook 它们都是规范的。 (这是有充分理由的,但它离题了)

      考虑这个解决方案(这是大多数人“真正想要的”)

      -<meta property="og:type" content="article" /> => https://www.example.org/sub-page/
      -<meta property="og:type" content="article" /> => https://www.example.org/sub-page/child-2/

      如果您现在这样做,Facebook 将大大减少抓取新图片的问题。

      最后,是的,这里的缓存破坏者、随机变量、更改 url 和建议都可以工作,但如果未正确指定 og:type,它们看起来像 "intermittent voodoo"

      PS:请记住,即使您“认为”可以看到最新版本,CDN 或服务器端缓存也会服务于 Facebook 的抓取工具。 (我不会花任何时间在这上面,只是指出如果不仔细检查会浪费你大量的时间。)

      【讨论】:

        【解决方案4】:

        如果您使用任何缓存插件,请确保清除所有缓存。还要确保您使用的图片具有推荐的 facebook 尺寸:1200(w) x 630(h) 或 600 x 315。

        【讨论】:

          猜你喜欢
          • 2013-12-14
          • 2012-08-02
          • 2014-04-04
          • 2013-12-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多