Facebookインスタントゲームには、Messengerプラットフォームボットをアタッチすることができます。この機能は任意ですが、再エンゲージメントに効果的なチャネルをゲームに組み込むことができます。ゲームボットの作成と設定方法は、次のとおりです。
ゲームボットを作成するには、まずFacebookページを作成する必要があります。ページとインスタントゲームを正しく連動させるためには、次のようないくつかの特定の条件を満たしている必要があります。
この条件を満たしたページを作成するには、[アプリダッシュボード]に移動して、次のステップを従います。
注:上述の手順のようにインスタントゲームがページに正しく関連付けられていないと、ボットはmessaging_game_plays
イベントを受け取ることができません。
ページを作成したら、メッセージWebhooksに応答することを確認します。Webhooksは、メッセージイベントがページに送信されたときに、バックエンドに送信されるHTTPコールです。応答が適切であった場合は、サーバーのロジックによって、各イベントへの適切な応答方法が決まります。サーバーのエンドポイントをページのイベントに関連付けるには、Messengerプラットフォームのクイックスタートチュートリアルの指示に従って、ページのボットを有効にします。下の表には、ボットとインスタントゲームを連動させる際に必要なWebhooksとアクセス許可の情報が記載されています。
セクション | 値 |
---|---|
ページのイベント |
|
アクセス許可 |
|
インスタントゲームのボットで使用できるのは、標準メッセージのみです。pages_messaging_subscriptions
は使用できません。注: ボットメッセージを送信する場合、GAME_EVENT
メッセージタグを使用しないでください。これはサポートされていません。
サブスクリプションメッセージまたはカスタマーマッチングを必要とする他の機能をボットに実装している場合は、別のアプリを作成し、Messengerプラットフォームのアクセス許可を再申請してください。
messaging_game_plays
Webhooksに応答するボットが正しく設定されると、プレイヤーがインスタントゲームを終了するたびに、サーバーアプリがmessaging_game_plays
Webhooksを受信するようになります。以下は、このようなWebhooksを検出してそれに応答するサーバーアプリの例です。
if (event.game_play) { var senderId = event.sender.id; // Messenger sender id var playerId = event.game_play.player_id; // Instant Games player id var contextId = event.game_play.context_id; var payload = event.game_play.payload; var playerWon = payload['playerWon']; if (playerWon) { sendMessage( senderId, contextId, 'Congratulations on your victory!', 'Play Again' ); } else { sendMessage( senderId, contextId, 'Better luck next time!', 'Rematch!' ); } }
このWebhookについて詳しくは、MessengerプラットフォームのゲームプレイWebhookに関するドキュメントをご覧ください。
次は、グラフAPIを使用して、プレイヤーにgame_playボタンを送信する例です。
curl "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>" -X POST -H "Content-Type: application/json" -d '{ "messaging_type": "UPDATE", "recipient": { "id": "<RECIPIENT_ID>" }, "message": { "attachment": { "type": "template", "payload": { "template_type": "generic", "elements": [ { "title": "It has been a while since your last game. Time to get back", "buttons": [ { "type": "game_play", "title": "Play Tic-Tac-Toe.", "payload": "{}", "game_metadata": { "context_id": "<CONTEXT_ID>" } } ] } ] } } } }'
このボタンについて詳しくは、Messengerプラットフォームのゲームプレイボタンに関するドキュメントをご覧ください。
本番環境にリリースする前に、ゲームボットのMessengerプラットフォーム申請プロセスを実行してください。レビューの申請を行う前に、必ずボットのチェックリストを確認してください。
ユーザーに送信できるゲームアップデートの時間枠と数を確認するには、game_bots_quota
APIを使うことができます。
GET graph.facebook.com/me?fields=game_bots_quota.recipient_id(<PSID>)&access_token=<page_access_token>
"game_bots_quota": {
"count": {a number indicating the remaining number of Game Updates that can be sent to a given user},
"time_window": {a number indicating the remaining time that your game can send Game Updates to a given user},
}
{count: 0, time_window: 0}
になります。Messengerによるゲームアップデートを構築して最適化する方法の詳細については、以下のドキュメントを参照してください。
インスタントゲームとそれに付随するMessengerによるゲームアップデートを構築する方法について知ることができました。次に、それをテストしてリリースできるように準備しましょう: インスタントゲームのテスト、公開、共有