Обновление игр с помощью Messenger

К Моментальным играм можно привязать бот для платформы Messenger. Делать это не обязательно, однако бот поможет повторно вовлечь людей в игру. Ниже приведены инструкции по созданию и настройке игрового бота.

Шаг 1. Создайте Страницу

Чтобы создать бот для игры, сначала необходимо создать Страницу Facebook. Чтобы Страница могла взаимодействовать с Моментальной игрой, она должна удовлетворять ряду условий:

  • Страница должна относиться к категории Страниц приложений (и только к ней);
  • название Страницы должно содержать название приложения;
  • страница не должна быть связана с другим приложением.

Чтобы создать такую страницу, откройте панель приложений и выполните перечисленные ниже действия.

  1. В меню "Продукт" откройте список "Моментальные игры" и выберите Сведения.
  2. На странице сведений найдите раздел "Страница приложения" и нажмите Создать новую страницу.
  3. Перейдите в раздел "Страница приложения" в Моментальных играх. Прежде чем перейти к следующему шагу, убедитесь, что раздел "Страница приложения" выглядит так, как показано справа:

Примечание. Если перечисленные выше требования не соблюдены, бот не сможет получать события messaging_game_plays.

Шаг 2. Активируйте бот

Убедитесь, что вы можете отвечать на Webhooks событий отправки сообщений, полученных созданной вами Страницей. Webhooks — это вызовы HTTP, которые мы отправляем на ваш сервер, когда на вашу Страницу передается событие отправки сообщения. Затем логика вашего сервера определяет, как следует ответить на это событие, если отклик в данном случае целесообразен. Чтобы связать конечные точки своего сервера с событиями вашей Страницы, следуйте инструкциям из руководства по быстрому началу работы с платформой Messenger, чтобы включить бот для этой Страницы. В таблице ниже представлены Webhooks и разрешения, необходимые для того, чтобы бот работал с Моментальными играми:

Раздел Значения

События Страницы

messages и messaging_game_plays

Разрешения

pages_messaging

Боты Моментальных игр могут использовать только стандартную переписку, но не pages_messaging_subscriptions. Примечание. Не используйте тег сообщенийGAME_EVENT при отправке сообщений бота. Этот тег больше не поддерживается.

Если у вашего бота есть функции, использующие рассылку сообщений по подписке или поиск клиентов, создайте отдельное приложение и вновь запросите разрешения платформы Messenger.

Шаг 3. Отвечайте на Webhooks messaging_game_plays

Когда бот будет настроен, серверное приложение начнет получать Webhooks messaging_game_plays каждый раз, когда игрок закрывает Моментальную игру. В примере ниже серверное приложение распознает один из этих 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 "Запуск игры"

Шаг 4. Верните игроков в игру

Ниже приведен пример отправки игрокам кнопки game_play через API Graph.

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: Документация о кнопке "Запуск игры"

Шаг 5. Следуйте нашим руководствам и соблюдайте наши политики

Бот можно будет запустить только после того, как он пройдет проверку для платформы Messenger. Прежде чем отправлять бот на проверку, ознакомьтесь с нашим контрольным списком.

Game Updates Quota API

Чтобы подтвердить временное окно и количество обновлений игры для отправки пользователю, можно использовать API game_bots_quota.

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. Пора протестировать вашу игру и подготовить ее к запуску: см. раздел Тестирование, публикация и предоставление доступа к моментальной игр