当您在Facebook中键入URL时,它会自动显示“发布链接”功能。对于大多数网站,它会自动加载从页面某处拉出的一系列图像,以与链接和描述一起使用。有没有人知道如何为我们自己的网站实现相同的功能,没有任何FB API等..只是javascript或JQuery?
答案 0 :(得分:16)
由于安全限制,JavaScript无法从任何服务器加载任何页面。 Facebook实际上要求 Facebook服务器获取有关该页面的信息,然后服务器依次查询页面以提取信息。您也需要服务器端实现此功能。
除此之外,它非常简单:使用HTTP客户端库为您选择的语言连接到提供的URL,然后使用HTML解析库提取title
标记,识别重要文本在body
标记中,提取似乎最合适的img
代码来源。
一旦您的服务器能够提取有关页面的信息,通过AJAX调用它是一个相当简单的练习。
答案 1 :(得分:13)
@Keshan。
我在我的网站上开发了一个带有PHP和jQuery的Facebook链接预览版。看看......源代码是免费的...我没有在这里发布整个代码,因为它们是很多文件...但是如果您更喜欢在这里发布代码,请告诉我,我会发布。
可在Github https://github.com/LeonardoCardoso/Facebook-Link-Preview
上找到答案 2 :(得分:7)
我认为涉及以下步骤
og:title
<title>
og:description
<meta name="description" ....
og:image
<img src=....
curl
或file_get_contents
获取这些数据,并解析上面详述的所需数据。不确定其他语言。此外,我认为FB存储数据,一旦找到,就会存储在数据库和第一次查询中。这有助于他们获得更快的结果,因此相同的文章共享和喜欢从存储的数据生成图像和细节。
您需要Javascript在运行时显示此预览(当您在textarea中写入时)。但是,如果您在发布数据后只需要它,则可以使用纯服务器端语言(您可以避免使用javascript)来完成,并按照上述步骤删除AJAX调用。
答案 3 :(得分:3)
令人惊讶的是,那里没有那么多服务。正如之前的评论者发布的那样,如果没有服务器元素,您的浏览器就无法做到这一点。
所以,工作流程就是这样:
如果您不打算创建服务器对象,则可以使用第三方服务来执行检索位:
祝你好运。