The Web Games on Facebook and Facebook Gameroom platforms are no longer available for new submissions. This documentation is intended solely for developers with existing games. To learn more, read our blog post.
Facebookゲームはポータルとしてホストされ、実際のゲームコンテンツはゲーム開発者のウェブサーバーでホストされます。FacebookウェブゲームのURLを設定すると、ゲームがFacebook.comで利用できるようになり、iframe内に表示されます。Facebookのアプリセンターとゲームのおすすめを最大限に活用してコンテンツを見つけてもらいやすくすることができ、Facebookプラットフォームのソーシャル機能を使用してよりソーシャルなゲームを作成できます。
アプリ設定に、FacebookウェブゲームのURLを入力するフィールドがあります。このフィールドは、プレイヤーがゲームを読み込んだときに読み込まれるiframeを設定します。これにより、ゲームを完全に管理し、独自のリリースサイクルでバージョンとコンテンツを自由に更新することができます。こちらのアプリ設定をご覧ください。
Facebook.com上でプレイヤーがゲームを読み込むと、Facebookは、アプリ設定で指定されたFacebookウェブゲームのURLにHTTP POST
リクエストを実行します。このリクエストに対する応答は、ゲームクライアントを含む完全なHTML応答になっているはずです。JavaScript用Facebook SDKを使用すると、ユーザーを認証し、フレームを操作し、ゲーム内のダイアログにアクセスできるため、このSDKをゲームのHTMLに必ず含めてください。Facebookゲームをするためのログインに関して詳しくは、こちらをご覧ください。
FacebookウェブゲームURLに対するHTTP POSTリクエストに、ほかのパラメーターも含められます。例えば、プレイヤーがアプリに基本的なアクセス許可を付与している場合は、プレイヤーのFacebook IDを含むsigned_request
パラメーターが含められます。新規プレイヤーの場合、signed_request
パラメーター値を使用してこのリクエストが実際にFacebookから送信されたものであることを確認することができます。詳しくは、Facebookゲームをするためのログインに関するガイドの署名付きリクエストに関する説明をご覧ください。
Facebook.comの閲覧にはHTTPSが必要であり、この要件はゲームコンテンツにも適用されます。そのため、ゲームコンテンツの配信時に有効なSSL証明書が必要になります。ゲームをホストするようにウェブサーバーを設定する際、ゲームが自分の所有する有効なドメイン上にあり、そのドメインに有効なSSL証明書があることを確認する必要があります。
ゲームの起動クエリに独自のカスタムパラメーターを渡すことができます。OGストーリーズ、紹介サイト、または共有リンクのパフォーマンスを追跡する際に便利です。
これには、次の2つの方法があります。
FacebookゲームのURLは、必ずhttps://apps.facebook.com/{namespace}/になります。アプリページやインターネット上のほかの場所から飛ぶプロモーションリンクを提供する場合には、このクエリパラメーターを追加することができます。例:
https://apps.facebook.com/{namespace}/?source=mysourceid
これらのクエリパラメーターはゲームの起動時に保存され、signed_requestと共にサーバーに渡されます。
プレイヤーをゲームの一部に直接誘導するリンクを共有することもできます。PHPを使用しているまたは起動スクリプトがあるなら、この方法によってプレイヤーを標準フロー外のゲームエリアに参加させることができます。サーバーへのリクエストでは、フルパスが保持されます。例えば、以下へのリンクを共有した場合
https://apps.facebook.com/{namespace}/special_launch.php
Facebookはゲームのiframeを読み込む際に
https://{your_web_games_url}/special_launch.php
に対してリクエストを実行します。
プレイヤーがFacebookでゲームを起動すると、サーバーへのHTTPリクエストにクエリパラメーターsigned_request
が追加されます。このsigned_request
をデコードすれば、ユーザー情報や、このデータのセキュリティと真正性を確認するための署名を入手することができます。このパラメーターは次のように解析できます。
238fsdfsd.oijdoifjsidf899
)user_id
フィールドがない場合は、プレイヤーがまだゲームにpublic_profileのアクセス許可を与えていないということです。
signed_request
を解析して、プレイヤーが新規であり、ゲームに基本的なアクセス許可を付与していないことがわかったら、JavaScript SDKを使って読み込み時にこれらのアクセス許可を求めることができます。
FB.login(function(response){ // Handle the response });
任意で、email
のようなアクセス許可を2番目のパラメーターとして追加して、求めることができます。
FB.login(function(response) { // Handle the response }, {scope: 'email'});
このペイロードに関するほかの重要な情報は、プレイヤーの年齢設定とロケール設定です。詳しくは、Facebookのゲームをするためのログインをご覧ください。
ゲームを開発している間、おそらくローカルマシンで動作しているウェブサーバー上でゲームをホストして、編集-コンパイル-テストのサイクルをスピードアップしたいと思われるでしょう。最も一般的な方法は、XAMPPのようなサーバースタックを設定することです。ローカルのSSL証明書を作成しインストールして、このサーバーがHTTPSをサポートするようにする必要もあるでしょう。
ゲームを世界に公開する準備ができたら、公開用ウェブサーバーでホスティングする手配を整える必要があります。
トラフィックが増えてきたら、ホスティングコストを削減してパフォーマンスを向上させるために、AkamaiやCDNetworksなどのコンテンツ配信ネットワーク(CDN)の使用を検討することができます。CDNは、ゲームのコンテンツをインターネット上のさまざまな場所にキャッシュすることで機能します。このため、プレイヤーはより近い場所から自分のクライアントにゲームアセットを配信することができます。プレイヤーにゲームをすばやく読み込ませ、サーバーを過度のトラフィックから保護することができます。