当我的页面被共享时,如何告诉 Facebook 使用哪个图像?
Facebook 有一套开放图元标签 https://developers.facebook.com/docs/opengraphprotocol/它会根据它来决定显示哪个图像。
Facebook 图片的关键是:
<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>
<meta property="og:image:secure_url" content="https://secure.example.com/ogp.jpg" />
它应该出现在<head></head>
标签位于页面顶部。
如果这些标签不存在,它将查找指定图像的旧方法:<link rel="image_src" href="/myimage.jpg"/>
。如果两者都不存在,Facebook 将查看您页面的内容,并从您的页面中选择符合其共享图像标准的图像:图像必须至少为 200 像素 x 200 像素,最大纵横比为 3:1,并且采用 PNG 格式, JPEG 或 GIF 格式。
我可以指定多个图像以允许用户选择图像吗?
Yes, you just need to add multiple image meta tags in the order you want them to appear in. The user will then be presented with an image selector dialog:
我指定了适当的图像元标记。为什么 Facebook 不接受这些变化?
一旦 URL 被共享,Facebook 的爬虫(其用户代理为facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php)
,将访问您的页面并缓存元信息。要强制 Facebook 服务器清除缓存,请使用Facebook URL 调试器/Linter 工具 https://developers.facebook.com/tools/debug他们2010年6月推出 https://developers.facebook.com/blog/post/390/刷新缓存并解决页面上的任何元标记问题。
此外,页面上的图像必须可供 Facebook 爬虫公开访问。您应该指定绝对网址,例如http://example.com/yourimage.jpg http://example.com/yourimage.jpg而不仅仅是 /yourimage.jpg。
我可以使用 Javascript 或 jQuery 等客户端代码更新这些元标记吗?不会。与搜索引擎爬虫非常相似,Facebook 抓取工具不执行脚本,因此下载页面时出现的任何元标记都是用于图像选择的元标记。
添加这些标签会导致我的页面不再验证。我怎样才能解决这个问题?
您可以将必要的 Facebook 命名空间添加到您的标签中,然后您的页面应该通过验证:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="https://www.facebook.com/2008/fbml">