53

我们正在启动一个新的 facebook 应用程序(顺便在 Rails 中),并且面临使用 FBML 或使用 IFrames 的决定。过去似乎普遍认为 FBML 是更好的选择,因为它使事情看起来更像 Facebook我们 应该使用 iframe

所以我想知道人们发现什么最有效。您看到了 iFrame 方法或 FBML 方法的优点和缺点。

或者,人们是否同时使用两者。我看到有一种方法可以覆盖特定位置的设置。


更新:
对于新读者,Facebook 已停止允许新的 FBML 应用程序所有新应用都应使用IFrame

4

12 回答 12

49

I have been developing a facebook app for the past several months, and recently switched our canvas page from FBML to an IFrame. The main reason for doing so has to do with these posts and features:

Lead Facebook Engineer Recommends Developers Use IFrames for Speed, Convenience

XFBML - Facebook Developer Wiki

Basically, you can now embed FBML into an IFrame canvas using the XFBML features that were implemented to support Facebook Connect. IFrames may have performance improvements (although those are probably trashed by the client-side requests required by XFBML, which are a little tedious to set up at first), but the main advantages for me are:

1) The ability to use jQuery or any other stuff I want.

2) Useful, relevant ads from adsense, since I no longer have to embed the adsense javascript in its own IFrame.

Once I made this switch, I realized that I was able to get all the facebook data I needed through the API, and take advantage of memcached to improve performance. So, now my canvas is just plain old HTML, without any XFBML.

Hope this helps.

于 2008-10-23T10:43:34.263 回答
10

I find FBML easier if you want to make your app look just like Facebook with less effort in duplicating their styling.

Iframes of course give you more control.

So which do you prefer - quicker development or more precise control over the results?

于 2008-10-23T10:33:29.587 回答
10

答案肯定是 iFrame。Facebook 已在 2010 年年底前逐步停止使用 FBML

于 2010-09-20T15:49:31.560 回答
6

说真的,在您决定进一步使用 FMBL 之前,您需要参考此链接。Facebook 将在 2010 年底停止允许新的 FBML 应用程序。所有的 Tabs Page 和 Canvas 应用程序都将过渡到 iFrame 应用程序,不再使用 FMBL,并与 FBML 说再见! http://developers.facebook.com/roadmap

于 2010-09-21T02:26:24.273 回答
4

Well, I'll have to agree with the poster above me and say that FBML makes it much easier to create a facebook-ish style to your application without having to rip off CSS pages ;}

Its also quite great working with the fb tags instead of creating makeshift solutions at times.

Both ways are good, but FBML tends to contribute to more effective and efficient development for Facebook. So, in the general case, I would probably go ahead and use FBML, unless you have some specific need for IFrame fine tuning.

于 2008-10-23T10:38:17.893 回答
3

总结一下:FBML 使应用程序变得更好、更集成。IFrame 更易于使用,并为您提供更多开发自由(如果您的应用程序已经完成,并且您只想为其添加“facebook 腿” - 这非常容易。

于 2009-12-13T05:40:15.903 回答
2

IFrames seem to work better if you have a client side using Flash or Silverlight. I couldn't get FBML working with a Silverlight client but when I switched to IFrames it worked fine.

于 2010-01-26T16:03:27.403 回答
2

在过去的几年里,我开发了大约 30 个 Facebook 应用程序,几乎都是基于 FBML 的。我还完成了一些 Facebook Connect 实现,这正是您使用 iframe 应用程序所做的事情。

通过创建一个基于 iframe 的应用程序,为主网站实施 Facebook Connect 并没有太多额外的工作,如果有的话。您的内容也没有经过净化,因此您可以毫无顾虑地使用标准的 html、css 和 javascript。

另一方面,您仍然只能将 FMBL/FBJS 用于任何应用程序的选项卡内容。FBML 应用程序还具有能够在初始页面加载时进行服务器端处理的额外优势。使用 iframe,您需要在客户端收集信息,然后将其传递给服务器。例如,使用 iframe 应用程序的 Preload FQL 比使用 FBML 应用程序要复杂一些。

于 2010-03-01T00:09:55.160 回答
2

Facebook 宣布他们将很快停止对 FBML 的支持。因此,如果您正在考虑开发一个长期项目,我肯定会从 iFrame 开始。您不想在以后经历从 FBML 到 iFrames 的更改,这只是一种痛苦。

但是,我个人认为 iFrame 目前比 FBML 漏洞更多,所以我认为 facbeook 停止支持 FBML 还需要一段时间。

从理论上讲,iFrame 更好,因为从技术上讲,您不会丢失任何东西。此外,您可以在 iFrame 中做更多在 FBML 中无法做到的事情。但实际上,就像我说的那样,iFrames 仍然包含很多错误。

于 2011-01-11T23:25:52.480 回答
1

使用 FBML 可以让您与整个 Facebook 进行更深入的集成。

于 2008-12-29T20:22:01.283 回答
1

我找到了一个无需 facebook 开发人员就可以创建 iframe 应用程序的解决方案。它非常强大: http: //www.facebook.com/iframe.apps

于 2011-02-28T14:58:54.470 回答
1

妈妈。话虽如此,为什么没有人对 FBML 将在不到 2 个月内过时这一事实进行处理/反应,将无法使用它构建更多应用程序,这意味着 Iframe 的所有问题都没有连接性因为 FBML 已经或将要处理。似乎转向 Iframe 是唯一合乎逻辑的选择,因为最终 FBML 将完全不受支持。

于 2010-11-16T17:59:06.673 回答