facebook的分享链接功能如何运作?

时间:2009-01-25 16:33:46

标签: facebook

我正在尝试实现一个功能,例如用户输入网址和显示该网址时我想要自定义显示(如果是来自youtube的视频,则为嵌入对象,如果是图像链接则为缩略图,标题和身体摘录,如果它是一个正常的链接)。

如何实现这样的功能?

4 个答案:

答案 0 :(得分:7)

有一个名为oEmbed的新想法,一些网站支持(Flickr,Vimeo和其他几个)解决这个问题。 oEmbed site

否则,只需根据您选择的列表检查网站,然后拉出相关位以构建嵌入链接。

答案 1 :(得分:2)

我很喜欢oEmbed的想法,但不幸的是它还没有那么多的采用。 oohEmbed尝试通过为许多网站构建oEmbed来解决这个问题。

要使功能正常工作,需要服务器的交互,我相信以下场景是如何工作的

假设我们有网站humanzz.com并且它提供了这样的功能

  1. 用户在humanzz.com的网页上输入网址,然后按下facebooks的预览按钮等按钮
  2. 对humanzz.com上的专用页面进行AJAX调用
  3. humanzz.com会调用远程网站并获取其数据
  4. AJAX调用现在返回页面的数据(oEmbed JSON对象)
  5. 这涉及到服务器的大量开销。

    我真的很想使用JavaScript,因为服务器的角色只是为了绕过“同源政策”的限制。

    oohEmbed允许通过为oohEmbed指定回调参数来绕过服务器的步骤,以便将返回的JSON对象传递给页面上的回调函数。 说明这一点的一个例子如下

    动态添加脚本标记到您的页面

    < script type =“text / javascript”src =“http://oohembed.com/oohembed/?url=http%3A//www.amazon.com/Myths-Innovation-Scott-Berkun/dp/0596527055/ &安培;回调= myCallBack函数“>< /脚本>

    这将导致执行myCallback(oEmbedJSONObject),这很棒。

    该解决方案存在的问题是,您仍然需要对没有oEmbed表示的网站进行备用。

答案 2 :(得分:1)

对于嵌入式的东西,我一直在使用auto_html(https://github.com/dejan/auto_html)非常成功(vimeo,youtube,images)甚至自己添加了soundcloud。但我仍然在寻找一个带有图像和文字的“缩略图”一代。

答案 3 :(得分:0)

我猜你必须自己通过手动解析你获得的URL类型来构建它。 如果它是一个图像网址,那么你只需要重新缩放它,以防用户点击它,然后通过以某种方式打开原始网址来处理它。

如果它是指向某些YouTube视频的链接,那么您必须先了解Youtube视频的嵌入是如何工作的。您只需复制Youtube本身提供的代码,然后使用您从用户处获得的URL将视频的URL与部分交换。

我从来没有实现类似的东西,但我认为它应该以某种方式工作。