facebook - Facebook Sharer 在共享我的 URL 时如何选择图像和其他元数据?

标签 facebook facebook-opengraph facebook-sharer

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

最佳答案

当我的页面被共享时,如何告诉 Facebook 使用哪个图像?

Facebook 有一组 open-graph meta tags它会根据它来决定显示哪个图像。

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 格式。

我可以指定多个图像以允许用户选择图像吗?

是的,您只需要按照您希望的显示顺序添加多个图像元标记。然后,用户将看到一个图像选择器对话框:
Facebook Image Selector

我指定了适当的图像元标记。为什么 Facebook 不接受这些更改?

一旦 URL 被共享,Facebook 的爬虫就会启动,其用户代理为 facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php) ,将访问您的页面并缓存元信息。要强制 Facebook 服务器清除缓存,请使用 Facebook Url Debugger / Linter Tool他们launched in June 2010刷新缓存并解决页面上的任何元标记问题。

此外,页面上的图像必须可供 Facebook 抓取工具公开访问。您应该指定绝对网址,例如 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">  

关于facebook - Facebook Sharer 在共享我的 URL 时如何选择图像和其他元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36098890/

相关文章:

facebook - 是否有一个端点我们可以使用页面访问 token 查询并发送 feed 目标参数以获得估计的覆盖面?

php - 从自己的网站邀请 Facebook 好友

facebook - 跟踪点击 Facebook 帖子的用户的转化率

ios - Facebook iOS SDK 错误 – 发布开放图谱操作

facebook - 无法在移动网站中使用 facebook sharer.php 自定义参数

Android Facebook SDK (4.31.0) - CustomTabLoginMethodHandler 中的 ActivityNotFoundException

facebook - 来自 Instagram 的帖子未显示在 Facebook Open Graph API 上

facebook-opengraph - 具有多个 Facebook 目录变体的产品的 JSON-LD 微数据

javascript - 为什么 href 中的 $location.absUrl(), $location.$$url, $location.$$path 为空?

iOS Facebook sdk邀请好友请求已发送但未收到好友通知