Бесшовная интеграция между браузером и игрой
Как это работает
Бесшовная интеграция позволяет настроить отправку данных с вашего веб-сайта в игру в параметрах URL-адреса. Таким способом вы можете передавать авторизационный токен пользователя, данные о маркетинговой кампании или любую другую информацию.
Сценарии пользователя
Существуют следующие сценарии пользователя при реализации бесшовной интеграции:
- переход по ссылке на установщик лаунчера с веб-сайта;
- переход по ссылке на лаунчер с веб-сайта, если лаунчер уже установлен на компьютере пользователя;
- запуск игры из лаунчера.
При переходе по ссылке на установщик лаунчера с веб-сайта:
- Пользователь открывает веб-сайт.
- Пользователь переходит по ссылке на установщик лаунчера.
- Пользователь скачивает установщик лаунчера по ссылке с одноразовым паролем.
- Пользователь устанавливает лаунчер.
- Лаунчер получает значение параметра
common_payload
по одноразовому паролю. - Пользователь нажимает Играть в лаунчере.
- Лаунчер проверяет наличие и срок жизни параметра
common_payload
:- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра
common_payload
. - Если проверка прошла неуспешно:
- Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
- Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргумента
common_payload
.
- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра
При переходе по ссылке на лаунчер с веб-сайта, если лаунчер уже установлен на компьютере пользователя:
- Пользователь открывает веб-сайт.
- Пользователь переходит по ссылке на лаунчер.
- Лаунчер сохраняет значения параметров
payload
,common_payload
иexpires_jn
из URL-адреса. - Пользователь нажимает Играть в лаунчере.
- Лаунчер проверяет наличие и срок жизни параметров
payload
иcommon_payload
:- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметров
payload
иcommon_payload
. - Если проверка прошла неуспешно:
- Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
- Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргументов
payload
иcommon_payload
.
- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметров
Запуск игры из лаунчера:
- Пользователь открывает лаунчер.
- Пользователь нажимает Играть в лаунчере.
- Лаунчер проверяет наличие и срок жизни параметров
payload
иcommon_payload
:- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметров
payload
иcommon_payload
при последнем запуске лаунчера по ссылке с веб-сайта. - Если проверка прошла неуспешно:
- Если в Личном кабинете настроена передача URL-адрес веб-сайта с игрой в имени исполняемого файла — лаунчер перенаправляет пользователя на этот адрес.
- Если в настройках в Личном кабинете URL-адрес веб-сайта с игрой не указан — лаунчер запускает игру без аргументов
payload
иcommon_payload
.
- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметров
Как настроить
Чтобы настроить бесшовную интеграцию между браузером и игрой:
- Выполните настройку в Личном кабинете.
- Добавьте ссылку на ваш сайт.
- Реализуйте обработку данных, полученных в параметре payload на стороне игры.
Настройка в Личном кабинете
- Откройте проект в Личном кабинете.
- Нажмите Launcher в боковом меню.
- Найдите нужный лаунчер на дашборде и нажмите Редактировать.
- В разделе Игры нажмите Настроить справа от игры.
- Перейдите в раздел Сборки.
- Перейдите на вкладку Исполняемые файлы.
- Для каждой операционной системы в поле Название исполняемого файла добавьте аргументы
--x_payload_url
. В значении аргумента передайте URL-адрес веб-сайта, на котором будет расположена ссылка или кнопка. Значение должно быть зашифровано с помощью Base64.
Например, если имя исполняемого файла игры game.exe
, а URL-адрес веб-сайта с игрой http://example.com/start_play
, тогда укажите в поле Имя исполняемого файла значение game.exe –x_payload_url aHR0cDovL2V4YW1wbGUuY29tL3N0YXJ0X3BsYXk=
.
Добавление ссылки на сайт
Добавьте на ваш сайт ссылку или кнопку, которая будет открывать URL-адрес в формате xl-<launcher-id>://game/<game-id>?payload=<payload>&common_payload=<common_payload>&expires_in=<expires_in>
, где:
<launcher-id>
и<game-id>
— ID лаунчера и игры, которые вы можете найти в URL-адресе в вашем Личном кабинете:https://publisher.xsolla.com/<merchant-id>/projects/<project-id>/new-launcher/<launcher-id>/game/<game-id>
.<payload>
— данные, которые необходимо передать игре.<common_payload>
— общие для всех игр данные пользователя, которые необходимо передать лаунчеру.<expires_in>
— срок жизни данных, переданных в параметрах payloadpayload
иcommon_payload
, в формате Unix time в миллисекундах.
- javascript
function getAuthToken() {
return 'YOUR DATA HERE';
}
function getDeeplink(launcherID, gameID) {
const encodedPayload = btoa(getAuthToken());
const expiresIn = new Date();
expiresIn.setHours(expiresIn.getHours() + 1); // Payload data will be fresh for 1 hour
return `xl-${launcherID}://game/${gameID}?payload=${encodedPayload}&expires_in=${expiresIn.getTime()}`;
}
// Put that `href` to button or link address
const href = getDeeplink(123, 4567);
Интеграция на стороне игры
Лаунчер передает данные, полученные в параметре payload
, в значении аргумента командной строки –xsolla-payload
. Лаунчер также проверяет наличие и срок жизни данных, переданных в параметре common_payload
, и передает их в значении аргумента командной строки –xsolla-common-payload
как показано в примере ниже.
Пример запуска игры, когда данные зашифрованы с помощью Base64:
game.exe ---xsolla-payload <payload> --xsolla-common-payload <common_payload> WU9VUiBEQVRBIEhFUkU=
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.