当使用Facebook Sharer时,Facebook将为用户提供使用从源中提取的几个图像中的一个作为他们的链接预览的选项。如何选择这些图像,以及如何确保页面上的任何特定图像始终包含在此列表中?


当前回答

旧方法,不再有效:

<link rel="image_src" href="http://yoururl/yourimage"/>

报告新方法,也不奏效:

<meta property="og:image" content="http://yoururl/yourimage"/>

在我执行它的第一天,它随机地断断续续地工作,从那以后就再也没有工作过。

Facebook linter页面,一个检查你的页面的实用工具,报告一切都是正确的,并显示我选择的缩略图…只是share.php页面本身似乎不能正常工作。肯定是Facebook的一个bug,他们显然不愿意修复,因为我在他们的系统中看到的关于这个问题的每个bug报告都说已经解决或修复了。

其他回答

旧方法,不再有效:

<link rel="image_src" href="http://yoururl/yourimage"/>

报告新方法,也不奏效:

<meta property="og:image" content="http://yoururl/yourimage"/>

在我执行它的第一天,它随机地断断续续地工作,从那以后就再也没有工作过。

Facebook linter页面,一个检查你的页面的实用工具,报告一切都是正确的,并显示我选择的缩略图…只是share.php页面本身似乎不能正常工作。肯定是Facebook的一个bug,他们显然不愿意修复,因为我在他们的系统中看到的关于这个问题的每个bug报告都说已经解决或修复了。

截至2013年,如果你使用facebook.com/sharer.php (PHP),你可以简单地创建任何按钮/链接:

<a class="btn" target="_blank" href="http://www.facebook.com/sharer.php?s=100&amp;p[title]=<?php echo urlencode(YOUR_TITLE);?>&amp;p[summary]=<?php echo urlencode(YOUR_PAGE_DESCRIPTION) ?>&amp;p[url]=<?php echo urlencode(YOUR_PAGE_URL); ?>&amp;p[images][0]=<?php echo urlencode(YOUR_LINK_THUMBNAIL); ?>">share on facebook</a>

链路查询参数:

p[title] = Define a page title
p[summary] = An URL description, most likely describing the contents of the page
p[url] = The absolute URL for the page you're sharing 
p[images][0] = The URL of the thumbnail image to be used as post thumbnail on facebook

这很简单:你不需要任何js或其他设置。只是一个HTML原始链接。 以任何您想要的方式样式A标记。

根据我的经验,http://www.facebook.com/sharer.php不使用元标记。它使用你传递的字符串。见下文。

http://www.facebook.com/sharer.php?s=100&p[title]=THIS IS MY TITLE&p[summary]=THIS IS MY SUMMARY&p[url]=http://www.MYURL.com&&p[images][0]=http://www.MYURL.com/img/IMAGEADDRESS

元标签与Facebook的开发者(如/send按钮)一起工作,其他Open Graph信息也是如此。所以如果你使用Facebook的一个实际元素,比如评论之类的,它们都将与Open Graph相关。

更新:有两种使用共享器的方法*注意查询字符串中的?s值和?u值 1 ==> STRING: http://www.facebook.com/sharer.php?s +上面的内容 将从字符串中提取信息。 2 ==> URL: http://www.facebook.com/sharer.php?u=url,其中URL等于实际URL ~~>将抓取url值中提供的页面 ~~>你可以在这里测试测试值:https://developers.facebook.com/tools/debug

这对我来说是有用的:我把想要的缩略图放在标签的右边,让它太小而看不见。

<img src="imagename.jpg" width="1" height="1" />

我还没有测试它的高度为0和宽度为0,但它可能仍然可以工作。这并不保证用户将选择此图像..

此外,似乎Facebook缓存的缩略图在你的页面,并不总是检查它的新。尝试将此添加到您网站的另一个页面,您将看到它工作。

我无法让Facebook从特定的帖子中选择正确的图像,所以我做了这个页面上概述的事情:

https://webapps.stackexchange.com/questions/18468/adding-meta-tags-to-individual-blogger-posts

换句话说,是这样的:

<b:if cond='data:blog.url == "http://urlofyourpost.com"'>
  <meta content='http://urlofyourimage.png' property='og:image'/>
 </b:if>

基本上,你要硬编码一个if语句到你的网站的HTML中,让它改变元内容,不管你为那篇文章改变了什么。这是一个混乱的解决方案,但它有效。