リッチなユーザ体験を開発できるFlash Platform、リッチなソーシャル体験を開発できるFacebook Platform、この2つのプラットフォームを組み合わせれば、インタラクティビティと応答性、表現力に優れ、さらにソーシャル機能も盛り込んだキラーアプリケーションを開発することが可能となります。
この記事では、Flash PlatformとFacebook Platformを使用したアプリのアーキテクチャーについて解説します。開発できるアプリの種類と、それらのアプリがどのようにサーバーやFacebookと連携するのかについて説明します。
合わせて「The technologies for building applications on the Flash and Facebook Platforms」(英語)もお読みください。
開発できるアプリの種類
Facebookと連携するFlashアプリを開発する場合、「Facebook上のアプリ」「外部サイト上のアプリ」「デスクトップアプリ」「モバイルアプリ」の4種類から選べます。
Facebookで開発できるFlashアプリの種類
Facebook上のアプリ
アプリ自体はあなたのサーバーにホストすることになりますが、ユーザはFacebook経由でアプリにアクセスします。また、アプリはFacebookのクロームを含むページの中に表示されるため、ユーザから見るとFacebook上にあなたのアプリがあるように感じます。友人からの招待やアプリ検索などで「Facebook上のアプリ」へアクセスすると、Facebookサーバーはそのリクエストをあなたのサーバーへと中継(プロキシ)し、アプリのページ(Flashアプリが埋め込まれたHTMLやJavaScriptを含む)を取得し、Facebook上に表示します。そのため、ユーザはFacebookから離れることなくアプリを利用でき、シームレスなユーザ体験を提供することができます。
Flashアプリは、Facebook Graph APIのラッパーである「Adobe ActionScript 3 SDK for Facebook Platform」を使って、Facebookとデータのやり取りを行います。このようなアプリの例としては、「Who Has the Biggest Brain」やZyngaの「Texas Hold'em Poker」があります。
外部サイト上のアプリ
こちらもアプリ自体はあなたのサーバーにホストすることになります。しかしユーザは、Facebook経由ではなく、URLを介してアプリにアクセスすることになります。このようなアプリでFacebookのソーシャル機能を利用するには、Adobe ActionScript 3 SDK for Facebook PlatformとFacebook JavaScript SDKを使って、アプリやFacebookにシングルサインイン/アウトする仕組みを追加する必要があります。アプリにログイン/アウトボタンを設置し、ユーザがログインした際には、ポップアップウインドウをなどを使ってFacebookログインやアプリ認証ダイアログ(場合によっては両方)が表示されるようにします。セキュリティ面を考慮すれば、ポップアップウインドウでの表示は必須でしょう。そうすることで、ユーザは自分自身がFacebookにログインしようとしていることを把握できるからです。
Facebookにシングルサインインすることで、アプリのログインプロセスがすっきりとするほか、ユーザのプロフィールにアクセスできるようになり、ユーザごとにサイトや体験をカスタマイズすることができます(例えば、ユーザ名や写真を表示したり、友達が購入した商品を掲載したり、友達のコメントやレビューを表示したり、ユーザのウォールや友達のニュースフィードにコメントやレビューを投稿したりするなど)。「Facebook上のアプリ」と同様にFlashアプリは、Facebook Graph APIのラッパーである「Adobe ActionScript 3 SDK for Facebook Platform」を使って、Facebookとデータのやり取りを行います。このようなアプリの例としては、「Ben and Jerry's」や「City Search」があります。
デスクトップアプリ
「外部サイト上のアプリ」と似ていますが、Flashアプリをサーバー上にホストするかわりに、デスクトップ用AIRアプリとして配布するという点が異なります。「外部サイト上のアプリ」同様に、デスクトップアプリでも「Adobe ActionScript 3 SDK for Facebook Platform」を使って、ログイン機能やFacebookのソーシャル機能を実装します。このようなアプリの例としては、「Seesmic for Facebook」や「Nomee」があります。
モバイルアプリ
デスクトップアプリと似ていますが、アプリの配布先がPCではなくデバイスとなります。他の種類のアプリ同様に、モバイルアプリでも「Adobe ActionScript 3 SDK for Facebook Platform」を使って、ログイン機能やFacebookのソーシャル機能を実装します。このようなアプリの例として、Zyngaの「Farmville」があります。