2012-01-12 49 views
2

我一直在寻找,但没有找到全面的答案,我想知道的是,当我把一个链接放入Facebook时,它会为该网站生成标题,描述和图像 - 如何?Facebook上的链接功能如何工作?

它发生了什么过程?

+0

FB的代码需要url,在后台加载页面,提取/生成信息,以及繁荣......有预览。 – 2012-01-12 22:29:09

+0

但是,从代码的角度来看,它会怎么做呢? – AviateX14 2012-01-12 22:31:03

+0

他们可能使用CURL来获取信息。对图像不太确定,有几种方法可以做到这一点 – 2012-01-12 22:33:04

回答

4

我假设你是指当你分享到Facebook的链接。 Facebook在网站的<title>标签中找到标题。描述取自HTML文档中的描述元标记或网站上的文本。由于这不完全可靠,因此您可以在发布链接之前编辑说明。我认为标题也是一样。

该图像是从Facebook可以在您提供的链接的文档中找到的图像中选择的。您还可以选择在发布链接时使用哪个图像,或者您可以选择不显示图像。

我不知道任何有关这方面的细节比我上面写的,我也找不到任何有关该主题的文档。以上几乎是你需要知道的使用该功能,并计划任何网站你计划在Facebook上分享相应。


关于如何从链接中提取数据的技术术语是Web scraping。只需要获取原始HTML(如果您想要刮取的网站)(您可以使用CURL来完成此操作,或者使用PHP的file_get_content或多种其他方法),然后搜索您要提取的数据。

提取标题很容易。如果你使用正则表达式,你可以写一个获取该网站的<title></title>标签之间的内容,这里是一个简单的例子:(?<=(\<title\>))(.*)(?=</title>)

类似的正则表达式可用于查找网站上所有图片链接,以及样本内容。

0

它从您链接的页面的源获取该信息。

页面的标题来自title标签之间的任何内容,并且它将页面上显示的第一个图像作为参考。

+1

这也是事实,不过最好是专门为URL指定'og:tags',这样您就可以更好地控制它的显示方式。 – Lix 2012-01-12 22:44:33

2

Facebook服务器会查看发布的链接并从中提取某些数据。它可能是标题,图像或一些文字作为摘要。服务器如何决定采取什么以及忽略什么取决于HTML的构建方式。
为了让开发人员能够确保Facebook的服务器看到正确信息og:tags放置在其pages.s 例子是:

  • OG:标题 - 链接预览的标题。
  • og:image - 将在预览中使用的图片网址。

他们出现这样的页面的HTML标记:

<meta property="og:title" content="The Rock"/>
<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>


如果你想看到这个动作,你可以使用 Debugger Tool说Facebook有提供。这个工具会向你显示 ,正好 facebook如何查看网址,查看哪些信息,以及如果查看网址信息时出现问题,它也会引起你的注意。

您可以阅读更多关于Open Graph Protocol,以及如何在Facebook上使用它here

0

啊是在Facebook的好ol链接功能。我看着如何做到这一点,当我开发一个类似的功能为我的网站projectclimb.com

本质上,它完成这些步骤

1)客户端请求(通过AJAX)被加载/链接称为Facebook的服务器上通过AJAX

2)Facebook服务器执行http获取请求,然后解析返回的HTML并剥离除标题,描述标记以及任何图像以外的所有内容。

3)Facebook服务器重新打包此信息并将其发送回(通过AJAX)对显示着一个很好的控制着这一切信息整齐陈列

这听起来比它更复杂真的..没有客户端花费太长的时间来复制我的网站。