Размещение игр на Facebook

The Web Games on Facebook and Facebook Gameroom platforms are no longer available for new submissions. This documentation is intended solely for developers with existing games. To learn more, read our blog post.

Игры на Facebook размещаются как на портале, а сами материалы игры хранятся на вашем веб-сервере. Чтобы разместить игру на Facebook.com, нужно настроить URL веб-игр на Facebook, и она появится в iframe. Используйте Центр приложений Facebook и следуйте нашим рекомендациям, чтобы заинтересовать людей своими материалами, а социальные функции платформы Facebook помогут игрокам общаться между собой.

Отображение игр на Facebook

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

Когда кто-то на Facebook.com загружает вашу игру, Facebook выполняет запрос HTTP POST на URL веб-игр на Facebook, указанный в настройках приложения. В ответ на этот запрос вы должны получить код HTML, содержащий клиент вашей игры. Чтобы авторизовать пользователей, взаимодействовать с формой и работать с диалоговыми окнами игры, можно использовать Facebook SDK для JavaScript, поэтому обязательно добавьте все необходимые параметры в код HTML своей игры. Дополнительную информацию о Входе для игр на Facebook см. здесь.

Форма iframe, в которой ваша игра отображается на Facebook.com

HTTP-запрос POST, отправленный на ваш URL веб-игр на Facebook, будет содержать дополнительные параметры, в том числе параметр signed_request с идентификационными данными игрока на Facebook, если он предоставил вашему приложению базовые разрешения. Если игрок новый, то значение параметра signed_request поможет подтвердить, что этот запрос действительно поступил из Facebook. Дополнительную информацию о подписанных запросах см. в руководстве Вход для игр на Facebook.

Требования к доменам и SSL

Для перехода по Facebook.com необходим протокол HTTPS, и это же требование действует для контента игры. Следовательно, чтобы представить контент игры, необходим действительный сертификат SSL. При настройке веб-сервера, на котором будет размещена ваша игра, убедитесь, что он принадлежит вашему домену и что у вас есть действительный сертификат SSL для этого домена.

Входящие ссылки

В запрос на запуск игры можно передать индивидуально настроенные параметры. Это позволит отслеживать эффективность новостей Open Graph, сайтов переадресации или опубликованных ссылок.

Эту задачу можно выполнить двумя способами:

  1. Добавьте параметры запроса в конце публикуемой ссылки.
  2. Добавьте относительные ссылкив путь URL игры.

Параметры запроса

URL вашей игры на Facebook всегда будет выглядеть так: https://apps.facebook.com/{namespace}/ . Сюда можно добавить параметры запроса при размещении рекламной ссылки со Страницы приложения или из других источников в Интернете. Пример:

https://apps.facebook.com/{namespace}/?source=mysourceid

Эти параметры запроса сохранятся при запуске игры и будут отправлены на ваш сервер вместе с signed_request.

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

https://apps.facebook.com/{namespace}/special_launch.php

Тогда Facebook выполнит запрос

https://{your_web_games_url}/special_launch.php

при загрузке формы iframe для вашей игры.

Запуск игры

При запуске игры на Facebook в HTTP-запрос на ваш сервер будет добавлен параметр запроса signed_request. Параметр signed_request можно декодировать, чтобы получить данные о пользователе и подпись для обеспечения безопасности и проверки подлинности этих данных. Проанализировать этот параметр можно следующим образом:

  1. Разделите подписанный запрос на две части точкой (.) (например: 238fsdfsd.oijdoifjsidf899)
  2. Декодируйте первую часть — закодированную подпись — из base64url.
  3. Декодируйте вторую часть — полезную нагрузку — из base64url, а затем декодируйте полученный объект JSON.

Если поля user_id нет, это означает, что игрок пока не предоставил вашей игре разрешения public_profile.

Новые пользователи

Если после анализа signed_request вы узнаете, что игрок новый и еще не предоставил вашей игре базовые разрешения, то можете запросить их с помощью SDK для Javascript.

FB.login(function(response){
  // Handle the response
});

Если нужно запросить и другие разрешения, например email, добавьте их в виде второго параметра.

FB.login(function(response) {
  // Handle the response
}, {scope: 'email'});

Эти данные также содержат другую важную информацию: настройки возраста и языковые предпочтения игрока. Дополнительную информацию см. в разделе Вход для игр на Facebook.

Рекомендации

Разработка на локальном компьютере

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

Перенос на рабочий сервер

Когда вы будете готовы представить свою игру, вам нужно будет разместить ее на общедоступном веб-сервере.

Улучшение производительности хостинга с помощью CDN

Когда трафик вашей игры увеличится, попробуйте использовать сеть доставки контента (CDN), например Akamai или CDNetworks, чтобы сократить затраты на хостинг и повысить производительность. Сеть CDN кэширует контент вашей игры в различных местах в Интернете. Это означает, что игровой контент будет предоставляться пользователям из близлежащих серверов. Игра будет загружаться быстрее, а ваш сервер не будет перегружен трафиком.