20

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

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

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

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

这是linter结果图形对象sharer.php 链接页面。有人知道我可能做错了什么吗?

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

我知道这很有效,因为buzzfeed具有我想要的确切功能。我已将我的示例简化为我认为应该起作用的核心部分。你可以在这里找到完整的源代码

4

6 回答 6

4

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

在 BuzzFeed 文章中,它是:

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

在您的页面中:

xmlns:og="http://ogp.me/ns#"
于 2013-04-03T19:32:38.500 回答
3

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

可能需要在链接中包含文件名,特别是如果它基于文件扩展名进行图像检测。

例如:

嗡嗡声:

<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"/>
于 2013-04-03T20:11:07.660 回答
1

经过一些测试,我想这是一个缓存问题

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

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

于 2013-04-09T14:12:19.627 回答
1

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

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

他们修复了这个错误,但截至 2014 年 1 月 22 日,缩略图选择器看起来仍然被禁用。

于 2014-01-22T20:19:14.863 回答
-2

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

我能够找到这篇文章,它展示了一种方法,您可以准确地指定哪些图像可用于 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
于 2013-04-03T19:06:38.983 回答
-2

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

于 2013-03-23T13:28:39.000 回答