インスタントゲームのテスト、公開、シェア

インスタントゲームでは、開発バージョンのローカルでのテスト、公開の自動化、チームでのビルドのシェアが非常に簡単に行えるようになっています。このドキュメントでは、以下の手順を詳しく説明します。

ローカルサーバーからのゲームのテスト

インスタントゲームの特長の1つに、各プレイセッションの前後に追加されるネイティブのオーバーレイがあります。開発とテストのワークフローを円滑化するために、開発者がローカルサーバーからゲームを実行して、Facebookのプラットフォームにおけるプレイヤーの体験とほぼ同じものを再現できるようにしています。これは、埋め込みテストプレイヤーによって行いますが、必要な作業はわずかな設定だけです。

localhostによるSSLの有効化

埋め込みテストプレイヤーはfacebook.comドメインで動くため、利用にはhttpsが必要です。httpsで提供されるページにコンテンツを埋め込むには、埋め込まれるコンテンツもSSL経由で提供される必要があります。次の手順では、セキュアコンテンツを提供するlocalhostサーバーの設定方法を説明します。ここで紹介するものは1つの例であり、この動作を実現できるソリューションは他にも多数あります。

> $ npm install -g http-server
  • 2.opensslを介してプライベートキーと証明書を作成します。セキュアなローカルサーバーを実行するためにこれが必要になります。
> $ cd path/to/my/game/
> $ openssl genrsa 2048 > key.pem
> $ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem
# Fill out necessary information
  • 3.SSLを使用してlocalhostからゲームを実行します。キーと証明書の準備が整ったら、SSLを使用してlocalhostからゲームを提供できます。
# Starts to serve via HTTPS, with cache disabled
> $ http-server --ssl -c-1 -p 8080 -a 127.0.0.1 
Starting up http-server, serving ./ through https
Available on:
https://127.0.0.1:8080
Hit CTRL-C to stop the server
  • 4.その後、ブラウザーでhttps://localhost:8080を指定すると、ゲームが実行されます。

: 継続するにはブラウザーに表示されるセキュリティに関する警告に対して承認を行う必要がある場合があるため、少なくとも1回はアクセスするようにしてください。警告に対して承認を行うことが必要な場合にこの手順をスキップすると、ゲームは読み込まれません。

たとえばChromeの場合、chrome://flags/#allow-insecure-localhostにアクセスし、'Allow invalid certificates for resources loaded from localhost.'を有効にして、警告を回避するように設定します。

ブラウザーから埋め込みプレイヤーを実行する

これで、セキュアな接続を介してlocalhostからゲームを提供できるようになり、Facebookのプレイヤーにゲームを埋め込むことができます。ブラウザーから以下を表示します。

https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080

次のように、インスタントゲームプレイヤーでゲームが実行されます。

: 埋め込みプレイヤーが正しく動作するように、少なくとも1回はfb.gg/play/YOUR_GAME_IDでゲームをプレイしてください。

この時点で、ローカルサーバーで実行中のゲームから、インスタントゲームSDKのすべての機能を使用できるようになります。

セキュリティ上の理由から、埋め込みテストプレイヤーを使ったテストに使用できるドメインはlocalhostのみです。

特定のスレッドでローカルサーバーからプレイする

特定のコンテキストで、ローカルサーバーからゲームを実行できます。方法は、前述したように埋め込みプレイヤーを使用するだけです。その後、FBInstant.contextメソッド(switchAsync()createAsync()chooseAsync()など)を使用して別のコンテキストに切り替えることができます。

これにより、スレッドのコンテキストでlocalhostから効果的にゲームをプレイでき、コンテキストのアップデートが正しく送信されているかテストできます。

ビルドのアップロード

ゲームを1つの.zipファイルにパッケージ化する

インスタントゲームのコンテンツはFacebookのインフラストラクチャでホストされるため、独自のインフラでゲームのコンテンツをホストしたり、サードパーティのサービスを使用する必要はありません。ゲームをテストする準備が整ったら、すべてのゲームファイルを1つの.zipファイルにパッケージ化します。index.htmlファイルは、このアーカイブのサブフォルダではなくルートに置く必要があります。バンドルをアップロードする方法は次の2通りあります。

1.開発者ウェブサイトから.zipファイルをアップロードする

.zipファイルをアップロードするには、アプリダッシュボードのインスタントゲーム製品から[ウェブホスティング]タブをクリックします。そこで[新しいバージョンをアップロード]をクリックすると、.zipファイルがFacebookのホスティングサービスにアップロードされます。

その後、ビルドでファイルが処理されます。この処理には数秒しかかかりません。状態が「スタンバイ」に変わったら、アプリを本番環境にプッシュする準備ができています。

2.グラフAPI経由でアーカイブをアップロードする

グラフAPI呼び出し経由でバンドルをアップロードすることもできます。この方法は、自動化されたデプロイシステムを使用している場合に便利です。この方法を使用するには、[ウェブホスティング]セクションの上部にある[アセットアップロードのためのアクセストークンを取得する]ボタンをクリックして、アップロードトークンをリクエストする必要があります。

ダイアログでトークンを使用すると、FacebookのグラフAPIに対して以下の呼び出しを実行して.zipを送信できます。Facebookではvideoサブドメインを使用していますが、これは意図的です。そのURLは大きなサイズのファイルを受信できるように設定されているからです。

curl -X POST https://graph-video.facebook.com/{App ID}/assets 
  -F 'access_token={ASSET UPLOAD ACCESS TOKEN}' 
  -F 'type=BUNDLE' 
  -F 'asset=@./{YOUR GAME}.zip' 
  -F 'comment=Graph API upload'

ファイルを送信すると、通常はアップロード済みのバンドルのリストにゲームが表示されます。この呼び出しを使用すれば、既存のビルドシステムと統合できます。

ホスティングに関する制限

Facebookホスティングにはいくつかの制限がありますが、特に以下の制限に注意してください。

  • サーバー側ロジック(phpなど)はサポートされません。
  • アップロードするファイルの合計サイズは200MBまでです。
  • アプリケーションの1回のアップロードに含めることのできるファイル数は500までです。

詳しくは、ウェブホスティングに関するドキュメントをご覧ください。

アップロード済みのビルドのテスト

ビルドの製品化

本番環境でアップロードをテストするには、まずビルドが実動用に分類されている必要があります。ボタンをクリックしてビルドを本番環境にプッシュします。

注:

本番環境用ビルドは、ゲームをプレイするすべての人に提供されるビルドです。既存のプレイヤーベースに影響を与えずに本番環境でアップデートをテストするために、ビルドをテスト用に分類することができます。そうすると、このビルドはアプリの開発者とテスターだけに提供されます。

: [テストアプリを作成]ボタンを使用して、ゲームのテストアプリを作成しないでください。インスタントゲームでは、ビルドをテスト段階にするという方法を使用します。

いったんビルドを本番環境にしたら、自分のローカルサーバーで実行中のビルドの代わりに、常に本番環境ビルドをテストします。本番環境ビルドのテストは、次のいずれかの方法で行えます。

1.Facebook上でゲームをプレイする

ゲームをフィードでシェアするには、[ゲームをシェア]セクションの[シェア]ボタンをクリックします。これにより、ゲームをフィードでシェアし、どのプラットフォーム(デスクトップ、iOS、Android)でもテストできるようになります。



2.Messenger上でゲームをプレイする

開発者自身とチームメンバー(アプリの管理者、開発者、テスターのいずれかの役割を割り当てられている人)には、Messengerのインスタントゲームリストに開発中のすべてのゲームのリストが表示されます。リストの名前は[開発中]になります。そのため、未公開のゲームであっても、Messengerでテストを実施できます。

ページをゲームに関連付けると、シェア可能なリンクを生成できます。このリンクを使用すると、ボットが設定されている場合、利用者はMessengerのボットのスレッドに移動しゲームが自動的に開きます。ボットが設定されていない場合、利用者はFacebookのページに移動しページでゲームが自動的に開きます。いずれの場合でも、リンクをクリックした利用者はすぐにゲームをプレイできます。

アプリレビューの申請

公開バージョンに問題がなければ、ゲームをアプリレビューに申請し、Facebookチームが品質とプラットフォームポリシーに準拠しているかを評価できるようにする必要があります。申請前に、リリース時のチェックリストを使用して、ゲームがすべての基準を満たしていることを確認してください。このガイドには、レビュー後にゲームを公開する手順も記載されています。

次のステップ

ゲームのテストと公開方法を理解したら、ゲームを申請する前に、インスタントゲームのリリース時のチェックリストを確認してください。さらに、ベストプラクティスセクションに記載されている、推奨されるゲームのデザインとアップデートについても確認してください。