私たちは(偶然にもRailsで)新しいFacebookアプリを開始しており、FBMLを使用するか、IFrameを使用するかの決定に直面しています。昔はコンセンサスが一般的だったようですが、FBMLの方がFacebookの見た目をより本質的にするため、より良い方法でしたが、今ではiFrame側のものが改善され始めているようで、主要なエンジニアの1人が言っています我々 iframesを使用する必要があります
だから私は人々が何が最もうまく機能することがわかったのだろうと思っています。 iFrameアプローチまたはFBMLアプローチのどちらを使用して、どのような利点と欠点を見てきましたか。
または、両方を組み合わせて使用している人もいます。特定の場所で設定を上書きできる方法があると思います。
UPDATE:
新しい読者のために、Facebookは 新しいFBMLアプリケーションの許可を停止 を備えています。 すべて新しいアプリはIFramesを使用する必要があります。
私は過去数か月間Facebookアプリを開発しており、最近、キャンバスページをFBMLからIFrameに切り替えました。そうする主な理由は、これらの投稿と機能に関係しています:
Facebookエンジニアが開発者にスピードと利便性のためにIFrameを使用することを推奨する
基本的に、Facebook Connectをサポートするために実装されたXFBML機能を使用して、FBMLをIFrameキャンバスに埋め込むことができます。 IFrameのパフォーマンスは向上する可能性があります(ただし、XFBMLで必要とされるクライアント側の要求によって破棄される可能性がありますが、最初に設定するのは少し面倒です)が、私にとっての主な利点は次のとおりです。
1)jQueryまたはその他の必要なものを使用する機能。
2)AdSenseの便利で関連性の高い広告。これは、AdSenseのJavaScriptを独自のIFrameに埋め込む必要がなくなったためです。
この切り替えを行うと、APIを介して必要なすべてのFacebookデータを取得でき、memcachedを利用してパフォーマンスを向上できることがわかりました。したがって、私のキャンバスはXFBMLのない単純な古いHTMLになります。
お役に立てれば。
アプリのスタイルを複製する手間を省いてFacebookのように見せたい場合は、FBMLの方が簡単です。
もちろんiframeを使用すると、より細かく制御できます。
それであなたはどちらを好みますか-より迅速な開発または結果のより正確な制御?
答えは確かにiFrameです。 Facebookは今年2010年末までにFBMLの使用を段階的に廃止しました
真剣に、これ以上FMBLに進むことを決定する前に、このリンクを参照する必要があります。 Facebookは2010年末までに新しいFBMLアプリケーションの許可を停止します。すべてのタブページとキャンバスアプリケーションはiFrameアプリに移行し、FMBLはなくなり、FBMLにGoodByeと言います。 http://developers.facebook.com/roadmap
まあ、私は上のポスターに同意する必要があり、FBMLを使用すると、CSSページを引き離す必要なく、Facebook風のスタイルをアプリケーションに作成するのがはるかに簡単になると言います;}
また、その場しのぎのソリューションを作成する代わりに、fbタグを使用することも非常に優れています。
どちらの方法も良いですが、FBMLはFacebookのより効果的で効率的な開発に貢献する傾向があります。そのため、一般的なケースでは、IFrameの微調整が特に必要でない限り、おそらくFBMLを使用します。
要約すると、FBMLは、より優れた、より統合されたアプリケーションを作成します。 IFrameの方が使いやすく、開発の自由度が高くなります(アプリケーションが既に完成していて、それに「facebook leg」を追加したいだけの場合は非常に簡単です。
Facebookは、FBMLのサポートを間もなく終了することを発表しました。したがって、長期的なプロジェクトの開発を考えているのであれば、私は間違いなくiFrameから始めます。後でFBMLからiFrameに変更する必要はありません。それはただの苦痛です。
ただし、個人的には、iFrameは現在FBMLよりもバグが多いと思うので、facbeookがFBMLのサポートを停止するまでにはしばらく時間がかかると思います。
理論的には、iFrameの方が優れています。技術的に何も失うことがないからです。さらに、FBMLではできない多くのことをiFrameで行うことができます。しかし、実際には、私が言ったように、iFrameにはまだ多くのバグが含まれています。
私は過去数年間で約30のFacebookアプリを開発してきました。そのほとんどすべてがFBMLベースです。 Facebook Connectの実装もいくつか行っています。これは、実際にiframeアプリで行っていることです。
Iframeベースのアプリを作成することで、メインWebサイトにFacebookコネクトがある場合、それを実装するのに余計な手間はかかりません。また、コンテンツはサニタイズされないため、標準のhtml、css、javascriptを心配することなく使用できます。
一方、FMBL/FBJSを使用できるのは、すべてのアプリケーションのタブコンテンツだけです。 FBMLアプリには、初期ページ読み込み時にサーバー側の処理を実行できるという追加の利点もあります。 iframeでは、クライアント側の情報を収集してからサーバーに渡す必要があります。たとえば、プリロードFQLは、FBMLアプリよりもiframeアプリの方が少し複雑です。
FlashまたはSilverlightを使用するクライアント側がある場合、IFrameはより適切に機能するようです。 SilverlightクライアントでFBMLを動作させることはできませんでしたが、IFrameに切り替えたときは問題なく動作しました。
Facebook開発者でなくてもiframeアプリケーションを作成するためのソリューションを見つけました。それは非常に強力です: http://www.facebook.com/iframe.apps
お母さん。以上のことを踏まえると、FBMLが2か月以内に廃止されるという事実に誰も取り組み/対応しなかったので、これを使用してこれ以上アプリケーションを構築することはできません。 FBMLが処理された、または処理される予定です。最終的にFBMLはまったくサポートされなくなるため、iframeに向かって移動することが唯一の論理的な選択のようです。
FBMLを使用すると、全体としてFacebookとのより深い統合が可能になります。