Facebook对此功能使用了什么?

时间:2017-03-23 14:48:30

标签: php facebook video hyperlink

我不确定这是否正确如此发布,但如果不是管理员,请随意将其移至相关的SO或建议我移动它。

我正在使用承包商来帮助我为某个项目创建一个网站。他用PHP编写了整个自定义网站。

我要求的一个功能是,网站上发布的链接应该具有我们在Facebook(FB)中看到的预览功能,如附图所示。

enter image description here

但他一直说我只能使用嵌入式代码来创建这样的预览功能。当我向他展示FB预览时,他说FB可能正在使用它自己的技术。目前,如果我将youtube上的链接发布到我的测试网站,它会显示为以下文字:https://www.youtube.com/watch?v=jtkUtNzaFPI&t=1909s

我的问题是: FB究竟使用了什么?这对于任何PHP开发人员来说都很容易实现,还是实现起来非常耗时。

1 个答案:

答案 0 :(得分:1)

  

"他说FB可能正在使用自己的技术"

他对你的问题的回答完全是胡说八道,并且只表明他并不想做你所问的问题。你希望他不会付钱给他。

Facebook正在做的事情是偷偷摸摸,但结构简单。操作顺序为:

  1. 用户在Facebook页面上输入文字。
  2. 将AJAX请求发送到带有文本的Facebook服务器。
  3. Facebook服务器解析并看到其中有一个链接。
  4. Facebook服务器发出服务器端HTTP请求以链接目的地以了解更多信息。
  5. Facebook服务器解析响应,以获取可以添加到用户看到的输入模板的任何内容。
  6. Facebook回复用户(也许是网络套接字?可能是对早期AJAX请求的回应?)
  7. Facebook页面上的客户端代码更新用户看到的内容。
  8. 步骤2-6直观地说它们可能占用大量的网络时间,但这些服务往往是非常快速的(Facebook本身,YouTube等),所以这通常不是问题。

    这里主要关注的是步骤3和步骤5. Facebook正在使用一些定制逻辑,可能需要付出相当大的努力来定义。可能有图书馆可以帮助解决这个问题,这可能是为了响应对这一特征的需求而做出的。我没有任何建议,抱歉。

    技术实施很容易。从用户的文本中确定要获取的数据可能很困难。确定要放入页面的数据可能很困难。这取决于您要实施的范围。

    例如,可能很难检测用户是否输入了您可以响应的各种内容,但可能很容易(可能使用正则表达式)检测用户是否输入了可能的内容是 YouTube网址。因此,如果您将问题空间缩小为只是 YouTube预览,那么您可能会遇到一些问题。如果您可以成功解析该YouTube链接,那么您就可以开展业务了。现在,您可以点击YouTube API并获取要发送回页面的信息。

    继续使用其他小问题空间的模式(预览图像链接,预览其他热门网站的链接等),并且随着时间的推移可以添加相同的功能。