facebook如何获取链接信息?

时间:2013-05-13 19:30:03

标签: php facebook meta-tags

当您在Facebook中键入链接时,您可以看到此链接的标题,网站名称,说明和图像。我所知道的是Facebook使用两种方式获取链接信息:

1 - 使用og代码

2 - 使用html头标记内的元标记。

但是有一些网站例如没有任何关于描述的og标签或元标签,而facebook会显示其描述和标题。

我的问题是,如果网站没有任何og代码或元标记,那么它会从哪里获取描述信息?

当我在Facebook帖子http://php.net/中发布此链接时,我可以看到描述,尽管我在页面的主页中找不到任何og:description标签或任何元标签。如果你把这个问题的链接发布到Facebook你可以看到问题本身apear,facebook怎么做呢?

3 个答案:

答案 0 :(得分:1)

通过分析网站,显然这是一个不完美的程序,因此Facebook建议使用og标签,以便网站完全按照您的要求显示在帖子中。

答案 1 :(得分:1)

技术上可以嗅探用户代理并检测Facebook是否正在查看该页面,然后有条件地在源中呈现og标记。

例如,我个人隐藏了所有Facebook相关标签给普通用户。通过嗅探用户代理,我只在Facebook查看我的网站时显示Facebook标签。我选择这条路线的原因是为了防止W3C验证失败(我是这样的肛门)并防止普通访客的HTML膨胀。这只是我想要做的偏好,并不是天生就是对或错。

换句话说,仅仅因为您没有在网站的源代码中看到og标记并不意味着它们在查看同一网站的来源时不会显示给Facebook。 / p>

答案 2 :(得分:0)

我假设他们在URL处获取页面HTML并解析它以获得通常的嫌疑人:

  • <title>
  • 的标题
  • 网站名称可能来自<title>或某些<head>代码
  • 来自<meta name="description" />
  • 的说明
  • 来自任何<img>代码的图片

这是您应该关注w3c standards的另一个原因,以便像Facebook这样的第三方网站能够以编程方式阅读您的HTML,而无需向您咨询HTML的结构。

推荐的og标记是另一个standard set by Facebook,它不仅可以帮助他们读取标题和图像等项目的页面,还可以设置开放式图表objectsactions的标准。 / p>