Бесшовная интеграция между браузером и игрой
Как это работает
Бесшовная интеграция позволяет настроить отправку данных с вашего веб-сайта в игру в параметрах URL-адреса. Вы можете передавать авторизационный токен пользователя, данные о маркетинговой кампании или любую другую информацию.
Сценарии пользователя
Существуют следующие сценарии пользователя при реализации бесшовной интеграции:
- переход по ссылке на лаунчер с веб-сайта;
- запуск игры из лаунчера.
При переходе по ссылке на лаунчер с веб-сайта:
- Пользователь открывает веб-сайт.
- Пользователь переходит по ссылке на лаунчер.
- Лаунчер сохраняет значение параметра
payload
из URL-адреса. - Пользователь нажимает Играть в лаунчере.
- Лаунчер проверяет наличие и срок жизни параметра
payload
:- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра
payload
. - Если проверка прошла неуспешно:
- Если в настройках в Личном кабинете указан URL-адрес — лаунчер перенаправляет пользователя на этот адрес.
- Если в настройках в Личном кабинете URL-адрес не указан — лаунчер запускает игру.
- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра
Запуск игры из лаунчера:
- Пользователь открывает лаунчер.
- Пользователь нажимает Играть в лаунчере.
- Лаунчер проверяет наличие и срок жизни параметра
payload
:- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра
payload
, полученном при последнем запуске лаунчера по ссылке с веб-сайта. - Если проверка прошла неуспешно:
- Лаунчер перенаправляет пользователя на URL-адрес, указанный в настройках в Личном кабинете.
- Если в Личном кабинете не указан URL-адрес для перенаправления пользователя, лаунчер запускает игру.
- Если проверка прошла успешно, лаунчер запускает игру с аргументами, полученными из параметра
Как настроить
Чтобы настроить бесшовную интеграцию между браузером и игрой:
- Выполните настройку в Личном кабинете.
- Добавьте ссылку на ваш сайт.
- Реализуйте обработку данных, полученных в параметре payload на стороне игры.
Настройка в Личном кабинете
- Откройте ваш проект в Личном кабинете.
- Нажмите Лаунчер в боковом меню.
- Найдите нужный лаунчер на дашборде и нажмите Редактировать.
- В разделе Игры нажмите Настроить справа от игры.
- Перейдите в раздел Сборки.
- Перейдите на вкладку Исполняемые файлы.
- Для каждой операционной системы в поле Имя исполняемого файла добавьте аргумент
--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>&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>
— данные, которые необходимо передать игре.
<expires_in>
— срок жизни данных, переданных в параметре payload, в формате Unix time.
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);
Интеграция на стороне игры
Игра получает данные в аргументе --xsolla-payload
. Реализуйте расшифровку данных игрой в зависимости от выбранного вами метода шифрования.
Пример запуска игры, когда данные зашифрованы с помощью Base64:
game.exe --xsolla-payload WU9VUiBEQVRBIEhFUkU=
Была ли статья полезна?
Оценить страницу
В другой раз
Спасибо за обратную связь!
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.