Facebook 即時遊戲能夠與 Messenger 平台 Bot 連結。雖然並非必要,但為遊戲提供了吸引用戶再次互動的絕佳管道。以下說明如何建立與設定遊戲 Bot:
若要建立遊戲 Bot,首先需要建立 Facebook 粉絲專頁。為了能夠與即時遊戲正確搭配,粉絲專頁需要符合以下的一些特別條件:
若要使用這些條件建立粉絲專頁,請前往應用程式主控板並遵照以下步驟操作:
注意:如未照上述方式將即時遊戲與粉絲專頁正確連結,Bot 將無法接收 messaging_game_plays
事件。
建立粉絲專頁後,您必須確認是否回覆其訊息 Webhooks。Webhooks 是當訊息事件傳送至粉絲專頁時,我們向您的後端傳送的 HTTP 呼叫。如果回覆為適當的動作,您伺服器的邏輯會決定如何正確回覆每個事件。若要將伺服器的端點連結至粉絲專頁事件,請依照 Messenger 開放平台快速入門教學中的指示,啟用粉絲專頁的 Bot。若要讓 Bot 可搭配即時遊戲,您需要下表包含 Webhooks 和權限的相關資訊:
區塊 | 值 |
---|---|
粉絲專頁事件 |
|
權限 |
|
messaging_game_plays
Webhooks正確設定 Bot 後,只要玩家關閉即時遊戲,您的伺服器應用程式就會開始接收 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 平台文件:「玩遊戲」按鈕文件
正式推出前,您的遊戲 Bot 應該進行 Messenger 平台提交程序。提交供審查前,請務必查看 Bot 檢查清單。
若要確認可傳送給用戶的遊戲更新時間範圍和次數,您可以使用 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 更新遊戲」組建即時遊戲,接下來可以測試遊戲並準備推出:測試、發佈及分享即時遊戲