【问题标题】:Multiple og:image tags not being displayed by share dialog or update status box共享对话框或更新状态框未显示多个 og:image 标签
【发布时间】:2013-03-10 05:33:06
【问题描述】:

我目前正在开发一项新功能,允许用户在 Facebook 上共享页面时选择他们想要使用的缩略图。用户应该能够使用 Facebook 小部件,如发送对话框或共享按钮,以及简单地将 URL 剪切并粘贴到他们在 Facebook 上的更新状态对话框中。

我已经阅读了很多文档,这似乎表明我只需要在要共享的页面中添加多个 og:image 标记。我已经这样做了,并通过 linter 运行页面,以便更新缓存。

当直接将页面传递给 share.php 时,有效地删除了我的任何客户端代码并让对话框显示它正在抓取的内容,我看到页面中的 3 张图像可用。

我不确定我在这里做错了什么。

这里是linter resultgraph objectsharer.php linkthe page。有人知道我可能做错了什么吗?

我已确认至少 og:title 标记受到共享对话框的尊重。我还测试了图像的大小,并包含如下建议的文件扩展名。

我知道这是可行的,因为 buzzfeed 具有我想要的确切功能。我已将我的示例简化为我认为应该起作用的核心部分。你可以找到full source here

【问题讨论】:

  • 您是否检查过所有图片是否都足够大?最小值为 200x200,建议更大。
  • 是的,所有图片都是 200x200
  • 我没有发现问题。我在共享器中看到的是您指定的列表中的前 3 张图像。与调试器中显示的相同。 Facebook 实际上并没有说它将显示该时代的所有指定图像。在您的情况下,它只是将它们限制为前三个。
  • buzzfeed 分享包含所有 10 张图片。

标签: javascript facebook-javascript-sdk facebook-opengraph facebook-sharer


【解决方案1】:

可能是顶部 HTML 标记中的 XML 命名空间吗?

在 BuzzFeed 文章中,它是:

xmlns:og="http://opengraphprotocol.org/schema/"

在您的页面中:

xmlns:og="http://ogp.me/ns#"

【讨论】:

  • hrm 让我试一试
【解决方案2】:

在 Buzzfeed 文章中,og:image 链接中的内容属性指向命名的 .jpg 文件,而您的链接末尾没有文件名/扩展名。

可能需要在链接中包含文件名,尤其是当它基于文件扩展名进行图像检测时。

EG:

Buzzfeed:

<meta property="og:image" content="http://s3-ak.buzzfeed.com/static/campaign_images/webdr02/2013/3/18/11/10-lifechanging-ways-to-make-your-day-more-effici-1-2774-1363621197-4_big.jpg" />

你的:

<meta property="og:image" content="http://statics.stage3.cheezdev.com/mediumSquare/3845/4AC356E3/1"/>

【讨论】:

  • 可能,这个验证起来会有点困难。让我看看我能做什么。
  • 好的,所以我已经用一个测试应用程序对此进行了测试,试图尽可能多地删除变量。文件名和扩展名似乎无关紧要。
【解决方案3】:

经过一些测试,我猜是caching issue

看起来共享者正在缓存图表,使用 og:url 作为键,因此共享者中的不同查询字符串不会绕过缓存,如果它们不影响 @987654323 @值。
很明显,调试工具不使用这样的缓存。

如果我是对的(这只是一个见解),您可以等待缓存条目过期或尝试使用不同的og:url。此外,为了简化测试,请将新的og:url 与新的页面位置保持一致。

【讨论】:

    【解决方案4】:

    这个故事太有趣了,我是 BuzzFeed 的一名开发人员,在试图弄清楚为什么我们的共享对话框突然停止显示缩略图选择器时遇到了这个问题。

    Facebook 似乎禁用了该功能。它在 2014 年 1 月 14 日短暂地再次出现,但他们引入了一个错误,该错误阻止了从定义了多个 og:image 标记的任何页面共享。 (见:https://developers.facebook.com/bugs/1393578360896606/

    他们修复了该错误,但截至 2014 年 1 月 22 日,缩略图选择器似乎仍处于禁用状态。

    【讨论】:

    • 有趣的是,我实际上在解决此问题时尝试联系buzzfeed 与那里的开发人员交谈,但没有得到任何回应。可能是因为我当时在 Cheezburger 工作。但是他们去年在他们对远程工作者的大清洗中解雇了我,那你打算怎么办?感谢您的跟进。
    【解决方案5】:

    据我所知,Facebook 网站上的 Sharer.php 脚本并不支持所有的 OG 标签。图片是从页面内容本身抓取的,因此如果您希望您的三张图片出现在 Sharer.php 脚本中,请将它们包含在您的内容中。

    【讨论】:

      【解决方案6】:

      Sharer.php 已被 Facebook 正式弃用,因此如果某些功能无法与它一起使用,我不会感到惊讶。虽然它仍然有效,但它始终是最简单的选择,我猜他们从未构建从 og 项目中抓取的链接图像。

      我找到了this article,,它显示了一种可以准确指定sharer.php 共享页面可用图像的方法。您可以指定一个(或多个)图像以使用如下 URL 结构共享:

      http://www.facebook.com/sharer.php?s=100
      &p[url]=http://bit.ly/myelection
      &p[images][0]=http://election.gv.my/assets/vote.png
      &p[title]=My customized title
      &p[summary]=My customized summary
      

      【讨论】:

      • 嗨迈克尔,我不认为问题仅限于sharer.php。如果您将相同的链接直接粘贴到 facebook 上的状态更新框中,它似乎也会忽略 og:image 标签。 Buzzfeed 似乎也能按预期工作。
      • 此方法的另一个缺点是,将 url 剪切并粘贴到 facebook 上的更新状态框不会拾取图像。
      • "Sharer.php 已被 Facebook 正式弃用" - 真的吗? This documentation page doesn't mention that.来源?
      • Michael 是正确的,但它最近有点不推荐使用并重新添加到文档中
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      相关资源
      最近更新 更多