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/1138460/

相关文章:

php - 自定义 Facebook 分享按钮

html - 如何在 FB 的墙上嵌入 iframe 播放器?

php - 在 Facebook 帖子中分享链接

javascript - Facebook 分享对话框/提要对话框和自定义标题/描述

javascript - jQuery AJAX : Get Meta-Data from Cross Domain HTML-Page

android - Facebook 共享对话框 PostId 为空

iOS - 在 UITableView 中阅读 Facebook 帖子

jquery - Facebook 喜欢按钮输出但 Conceal 喜欢计数

facebook - 有没有办法获取自定义受众的用户列表?

facebook-graph-api - 使 og :video play inline whatsapp and facebook