Тестирование, публикация и предоставление доступа к моментальной игре

Платформа моментальных игр позволяет без труда протестировать версию игры в локальной среде, автоматизировать публикацию и поделиться сборкой с коллегами. В этом документе вы найдете подробные инструкции по выполнению всех этих задач.

Тестирование игры с локального сервера

Удобство моментальных игр во многом зависит от нативных наложений, которые добавляются в игру до и после каждого сеанса. Чтобы упростить разработку и тестирование, мы позволяем разработчикам запускать игру с локального сервера. В этом случае условия запуска очень похожи на те, которые предоставляются игрокам на нашей платформе. Чтобы обеспечить это сходство, мы применяем встроенный тестовый проигрыватель, почти не требующий настройки.

Включение SSL с помощью localhost

Поскольку встроенный тестовый проигрыватель работает в домене facebook.com, его можно запустить только через https. Чтобы встроить материал в страницу, которая показывается через https, его также нужно показать через SSL. Далее вы узнаете, как настроить сервер localhost, который показывает защищенный контент. Существует множество решений, которые позволяют это сделать. В этом документе представлено одно из них.

> $ npm install -g http-server
  • 2. Создайте приватный ключ и сертификат через openssl. Они понадобятся, чтобы запустить защищенный локальный сервер.
> $ cd path/to/my/game/
> $ openssl genrsa 2048 > key.pem
> $ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem
# Fill out necessary information
  • 3. Запустите игру с локального хоста с протоколом SSL. Когда ключ и сертификат будут готовы, вы сможете показывать контент с локального хоста с использованием SSL.
# Starts to serve via HTTPS, with cache disabled
> $ http-server --ssl -c-1 -p 8080 -a 127.0.0.1 
Starting up http-server, serving ./ through https
Available on:
https://127.0.0.1:8080
Hit CTRL-C to stop the server
  • 4. После этого при переходе на страницу https://localhost:8080 в браузере должна отображаться запущенная игра.

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

Например, в Chrome может потребоваться открыть chrome://flags/#allow-insecure-localhost и включить параметр "Разрешить недействительные сертификаты для ресурсов, загруженных с localhost", чтобы предупреждение не возникало.

Запуск встроенного проигрывателя из браузера

Теперь, когда игра загружается с локального хоста по защищенному соединению, ее можно встроить в наш проигрыватель. Откройте эту страницу в браузере:

https://www.facebook.com/embed/instantgames/ID_ВАШЕЙ_ИГРЫ/player?game_url=https://localhost:8080

Вы должны увидеть, что игра запущена в проигрывателе моментальных игр. Это выглядит примерно так:

Примечание.Чтобы встроенный проигрыватель заработал, вы должны хотя бы раз сыграть в свою игру на странице fb.gg/play/ID_ВАШЕЙ_ИГРЫ.

После этого вы сможете использовать все функции SDK моментальных игр из запущенной на локальном сервере игры.

Из соображений безопасности встроенный тестовый проигрыватель поддерживает только домен localhost.

Игра с локального сервера в переписке

Вы можете запустить игру с локального сервера в определенном контексте. Для этого воспользуйтесь встроенным проигрывателем, как описано выше. Для переключения на другие контексты можно использовать методы FBInstant.context (например, switchAsync(), createAsync() и chooseAsync()).

Таким образом можно воспроизвести игру с localhost в контексте переписки и проверить, правильно ли отправляются обновления контекста.

Загрузка сборки

Запакуйте игру в один файл ZIP

Контент моментальных игр размещается в инфраструктуре Facebook, поэтому собственное пространство для хостинга или услуги сторонних поставщиков вам не потребуются. Когда игра будет готова к тестированию, запакуйте ее в один файл ZIP. Обратите внимание, что файл index.html должен находиться в корневой папке этого архива. Сборку можно загрузить двумя способами.

1. Загрузка файла ZIP через сайт для разработчиков

Чтобы загрузить ZIP-файл, откройте вкладку Веб-хостинг в Моментальных играх в панели приложений. Нажмите Загрузить версию. После этого вы сможете загрузить ZIP-файл в хостинговый сервис Facebook.

Затем будет выполнена обработка файла. Это займет всего несколько секунд. Состояние "В ожидании" означает, что приложение готово к развертыванию в производственной среде.

2. Загрузка архива через API Graph

Вы также можете загрузить сборку игры с помощью вызова API Graph. Это удобно при наличии автоматизированной системы развертывания. Чтобы воспользоваться этим способом загрузки, вы должны запросить маркер загрузки в разделе Веб-хостинг. Для этого нажмите кнопку Получить маркер доступа для загрузки ресурсов в верхней части страницы.

С помощью маркера из этого диалога вы сможете передать в API Graph следующий вызов, чтобы отправить свой файл ZIP. Обратите внимание, что мы используем субдомен для видео, поскольку он позволяет загружать крупные файлы.

curl -X POST https://graph-video.facebook.com/{App ID}/assets 
  -F 'access_token={ASSET UPLOAD ACCESS TOKEN}' 
  -F 'type=BUNDLE' 
  -F 'asset=@./{YOUR GAME}.zip' 
  -F 'comment=Graph API upload'

Затем ваша игра отобразится в списке загруженных пакетов. Этот вызов позволяет выполнить интеграцию с существующей системой сборки.

Ограничения хостинга

Помните, что хостинг на Facebook имеет ряд ограничений. Ниже перечислены самые важные из них.

  • Серверная логика (например, PHP) не поддерживается.
  • Общий размер загруженных файлов не должен превышать 200 МБ.
  • В загружаемом архиве ZIP должно быть не более 500 файлов.

Подробнее см. в документации по веб-хостингу.

Тестирование загруженной сборки

Развертывание сборки в производственной среде

Чтобы протестировать загруженную сборку в производственной среде, ее необходимо подготовить. Чтобы отправить сборку в производственную среду, нажмите кнопку .

Примечание.

Производственная сборка — это сборка, которая будет показываться всем пользователям вашей игры. Чтобы тестировать обновления в производственных условиях, не причиняя неудобств игрокам, можно подготовить специальную сборку для тестирования. При этом она будет показываться только разработчикам и тестировщикам приложения.

Примечание. Не создавайте тестовое приложение для игры с помощью кнопки "Создать тестовое приложение". Для моментальных игр необходимо подготовить сборку для тестирования.

Когда будет готова сборка в производственной среде, протестируйте ее, запустив вместо текущей сборки на локальном сервере. Протестировать готовую сборку можно несколькими способами.

1. Запустить игру на Facebook

Чтобы опубликовать игру в Ленте, нажмите кнопку Поделиться в разделе Поделитесь своей игрой. Вы сможете опубликовать игру в Ленте и протестировать ее в любой среде (на ПК, в iOS или Android).



2. Запустить игру в Messenger

В списке моментальных игр в Messenger вы и ваша команда (люди, которым назначены роли администратора, разработчика или тестировщика в вашем приложении) будете видеть все игры, находящиеся в разработке. Список этих игр называется В разработке. Так вы сможете протестировать эти игры в Messenger, даже если они ещё не опубликованы.

Если с вашей игрой связана страница, вы также можете создать ссылку, которой можно поделиться. По этой ссылке пользователь сможет вступить в переписку с вашим ботом в Messenger и автоматически открыть игру — при условии, что вы настроили бот. Если вы этого не сделали, пользователь будет перенаправлен на вашу Страницу Facebook, где игра также откроется автоматически. В обоих случаях при нажатии этой ссылки игра сразу же откроется.

Отправка приложения на проверку

Подготовив версию для публикации, отправьте игру на проверку. Наша команда оценит ее качество и соответствие политике платформы. Перед отправкой изучите наш контрольный список и убедитесь, что игра соответствует всем критериям. В этом документе также приведены инструкции по публикации игры после прохождения проверки.

Дальнейшие действия

Теперь, когда вы знаете, как протестировать и опубликовать игру, перед отправкой ознакомьтесь с нашим контрольным списком: Контрольный список для запуска моментальных игр. Кроме того, изучите наши рекомендации по оформлению и обновлению игры.