透過 Messenger 發佈遊戲更新

Facebook 即時遊戲可以附加 Messenger Platform Bot。雖然這是可選功能,但它可為您的遊戲提供有效的渠道,以與玩家重新互動。下文將說明如何建立和設定遊戲 Bot。

步驟 1:建立專頁

若要建立遊戲 Bot,您必須先建立 Facebook 專頁。若要讓專頁能夠正常與即時遊戲配搭運作,專頁必須符合一些特定條件:

  • 專頁類別必須為並且也只能為應用程式專頁
  • 專頁名稱必須包含應用程式名稱
  • 專頁不得與其他應用程式建立連繫

若要建立符合這些條件的專頁,請前往應用程式管理中心並遵循以下步驟:

  1. 前往產品選單,展開即時遊戲下拉式選單,並選擇詳細資訊
  2. 前往詳細資訊頁面的應用程式專頁部分,然後點擊建立新專頁選項
  3. 前往即時遊戲產品的應用程式專頁部分。前往下一步前,請確保您的應用程式專頁部分看起來像右側的步驟:

請注意如果您的即時遊戲沒有按照上述方式正確地與專頁建立連繫,Bot 就無法收到 messaging_game_plays 事件

步驟 2:啟用您的 Bot

建立專頁後,您必須確保專頁能夠回覆其訊息 Webhooks。Webhooks 是有訊息事件傳送到專頁時,我們傳送到您後端的 HTTP 調用。接著,您的伺服器邏輯會決定如何正確回覆每個事件(如果適合回覆的話)。若要將伺服器端點連結到專頁事件,請按照 Messenger Platform 快速入門教學導覽中的指示,為專頁啟用 Bot。下表提供的資訊將說明您需要哪些 Webhooks 和權限,才能使 Bot 與即時遊戲共同運作:

部分

專頁事件

messagesmessaging_game_plays

權限

pages_messaging

即時遊戲 Bot 只能使用標準訊息功能,而無法使用 pages_messaging_subscriptions。注意:傳送 Bot 訊息時,請勿使用 GAME_EVENT訊息標籤,因為已不再支援此功能。

如果您的 Bot 有其他功能需要使用訂閱訊息功能顧客媒合功能,請另建一個應用程式,並再次申請 Messenger Platform 權限。

第 3 步:回應 messaging_game_plays Webhooks

正確配置 Bot 後,每當玩家關閉即時遊戲時,您的伺服器應用程式就會開始收到 messaging_game_plays Webhook。以下範例展示了可偵測及回覆上述其中一個 Webhook 的伺服器應用程式。

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 Platform 文件:玩遊戲 Webhook 文件

第 4 步:吸引玩家回到遊戲

以下範例將說明如何使用 Graph 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 Platform 文件:玩遊戲按鈕文件

第 5 步:遵循我們的準則和政策

在推出正式版本前,您的遊戲 Bot 必須完成 Messenger Platform 提交程序。提交審查前,請務必查看我們的 Bot 檢查清單

遊戲更新額度 API

您可使用 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},
}

更多背景資訊

  1. 如果用戶未有訂閱「透過 Messenger 發佈遊戲更新」,呼叫此 API 將傳回錯誤代碼 551,以及「此用戶目前無法接收訊息。」訊息;
  2. 如果用戶沒有剩餘額度,回應則為 {count: 0, time_window: 0}

參考資料

請參考下列文件,以進一步了解如何建立並優化透過 Messenger 發佈的遊戲更新。

後續步驟

現在您已了解如何使用關聯的「透過 Messenger 發佈遊戲更新」開發即時遊戲,接下來我們需要對其進行測試,為發佈遊戲做好準備:測試、發佈和分享您的即時遊戲