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 更新遊戲」組建即時遊戲,接下來可以測試遊戲並準備推出:測試、發佈及分享即時遊戲