Это старая версия документа!
Зашифрованная информация об игре
Зачем?
Если необходимо передать некую информацию об игре во время игры сторонним сервисам (телеграм ботам, сторонним скриптам и т.п.) - то рекомендуется пользоваться генерацией зашифрованной строки. В этом случае даже технически подкованные игроки не смогут увидеть, какая именно информация передаётся, и подменить её самостоятельно (особенно актуально на Лонг форматах).
Как?
Генерация ключа
В игре надо создать ключ. Для этого в редакторе игры в разделе 'API для внешних сайтов/телеграм ботов' ткнуть кнопку 'Сгенерировать'.
Использование в задании
В заданиях и описании игры можно использовать конструкцию !api:данные!
данные - нужные стороннему серверу - указываются через запятую:
- user_id - id юзера. В данных поле 'u'.
- user_name - Логин юзера. В данных поле 'un'
- team_id - Id команды. В данных поле 'tm'
- team_name - Названия команды. В данных поле 'tmn'
- task_n - Номер уровня. В данных поле 't'
- task_id - Id уровня. В данных поле 'tid'
- game_id - Id игры. В данных поле 'gid'
Пример
Например: !api:user_id,task_id!
Сгенерирует зашифрованную строку bc1443bbb42bafc0501bc821c2fb55a987fda029d4ea6657 которую можно расшифровать в {'u':15, 'tid:32432} с помощью ключа игры.
Расшифровка
Пример расшифровки на PHP:
json_decode(trim(openssl_decrypt(hex2bin($data), 'BF-ECB', $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING)), true);