# Однокликовый вход в Telegram‑mini‑app: преимущества и реализация
В современном мобильном пространстве пользователи всё чаще отказываются от сервисов, требующих длительного ввода данных. По результатам исследования Statista более 60 % потенциальных клиентов бросают процесс регистрации, если он превышает 30 секунд. Именно поэтому ** бесшовная авторизация в один клик** стала критически важным элементом любой * mini‑app* в Telegram. В предыдущей статье мы рассмотрели общие преимущества такого подхода; теперь подробнее разберём, как именно реализуется ** однокликовый вход** в мини‑приложениях и какие данные при этом обрабатываются.
** Аналитические данные показывают, что сокращение времени входа с 30 секунд до 2 ‑3 секунд повышает вероятность завершения первой сессии почти вдвое, что напрямую отражается на росте удержания пользователей в долгосрочной перспективе. Почему ускоренный вход важен для Telegram‑mini‑app Пользователи мобильных сервисов ожидают мгновенного доступа без лишних запросов паролей. При этом Telegram** уже обладает проверенным каналом коммуникации: каждый пользователь имеет уникальный идентификатор и открытый токен, который можно использовать для подтверждения личности. По данным [ Подробнее 3 ] ( https: //w...content-available-to-author-only...e.as/rkz1unxm37bvl.md), более 70 % активных пользователей Telegram согласны делиться своим идентификатором, если это упрощает процесс входа. Такой высокий уровень согласия позволяет разработчикам сократить количество *запросов* к серверу, тем самым уменьшая нагрузку и ускоряя отклик.
Кроме того, ускоренный вход повышает конверсию в мобильных сценариях, где каждый дополнительный ввод может стоить потери пользователя. При анализе ** данных** о поведении аудитории видно, что среднее время взаимодействия с мини‑приложением снижается на 35 % после внедрения однокликовой авторизации, а показатель удержания растет на 12 % .
### Техническая реализация однокликового входа
Для реализации ** одного клика** в мини‑приложении Telegram используется механизм Telegram.WebApp .initData . При открытии мини‑приложения сервер получает зашифрованную строку, содержащую идентификатор пользователя, временную метку и подпись. Приложение проверяет подпись, используя публичный ключ Telegram, и, если проверка проходит успешно, сразу считает пользователя аутентифицированным. Такой подход устраняет необходимость в отдельном вводе логина и пароля.
Важно отметить, что в процессе аутентификации передаются только необходимые ** данные** – идентификатор, имя пользователя и, при необходимости, ссылка на аватар. Все остальные поля остаются пустыми, что минимизирует объём передаваемой информации и снижает риск утечки персональных данных.
### Обработка запросов и безопасность
После успешной проверки initData сервер может сформировать JWT‑токен, который будет использоваться для последующих запросов к API. Такой токен хранится в памяти приложения и автоматически обновляется каждые 24 часа, что исключает необходимость в постоянных запросах к Telegram для подтверждения сессии. При этом каждый запрос сопровождается подписью, проверяемой на стороне сервера, что защищает от подделки.
Для повышения уровня защиты рекомендуется дополнительно использовать [ Telegram в Википедии] ( https: //r...content-available-to-author-only...a.org/wiki/Telegram_(мессенджер)) как источник официальных рекомендаций по работе с криптографией Telegram. В частности, следует регулярно обновлять публичный ключ и проверять срок действия токена, чтобы предотвратить возможные атаки повторного воспроизведения.
### Практические рекомендации для разработчиков
Если вы планируете внедрить однокликовый вход в своё мини‑приложение, обратите внимание на следующие шаги:
- Подключите проверку подписи initData сразу после загрузки веб‑интерфейса.
- Сформируйте короткоживущий JWT‑токен и храните его в безопасном месте ( например, в памяти, а не в localStorage ) .
- Ограничьте набор передаваемых ** данных** только теми, которые действительно нужны для работы приложения.
- Регулярно обновляйте публичный ключ Telegram и проверяйте метки времени, чтобы исключить использование устаревших токенов.
Следуя этим рекомендациям, вы сможете обеспечить быстрый и безопасный вход, одновременно сокращая количество запросов к серверу и повышая удовлетворённость пользователей.
### Заключение
Однокликовая авторизация в Telegram‑mini‑app демонстрирует, как сочетание уже проверенных каналов коммуникации и минимального объёма передаваемых ** данных** может существенно улучшить пользовательский опыт. При правильной реализации такой подход уменьшает количество запросов, ускоряет отклик и повышает конверсию, что особенно важно в условиях высокой конкуренции мобильных сервисов. Для дальнейшего углубления темы рекомендуем ознакомиться с [ технические детали] ( https: //w...content-available-to-author-only...e.as/rkz1unxm37bvl.md), где раскрыты нюансы интеграции и примеры кода. Применяя описанные практики, вы сможете создать более *более* удобный и надёжный процесс входа, отвечающий требованиям современных пользователей./* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
}
}
IyDQntC00L3QvtC60LvQuNC60L7QstGL0Lkg0LLRhdC+0LQg0LIgVGVsZWdyYW3igJFtaW5p4oCRYXBwOiDQv9GA0LXQuNC80YPRidC10YHRgtCy0LAg0Lgg0YDQtdCw0LvQuNC30LDRhtC40Y8KCtCSINGB0L7QstGA0LXQvNC10L3QvdC+0Lwg0LzQvtCx0LjQu9GM0L3QvtC8INC/0YDQvtGB0YLRgNCw0L3RgdGC0LLQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0LLRgdGRINGH0LDRidC1INC+0YLQutCw0LfRi9Cy0LDRjtGC0YHRjyDQvtGCINGB0LXRgNCy0LjRgdC+0LIsINGC0YDQtdCx0YPRjtGJ0LjRhSDQtNC70LjRgtC10LvRjNC90L7Qs9C+INCy0LLQvtC00LAg0LTQsNC90L3Ri9GFLiDQn9C+INGA0LXQt9GD0LvRjNGC0LDRgtCw0Lwg0LjRgdGB0LvQtdC00L7QstCw0L3QuNGPIFN0YXRpc3RhINCx0L7Qu9C10LUgNjAgJSDQv9C+0YLQtdC90YbQuNCw0LvRjNC90YvRhSDQutC70LjQtdC90YLQvtCyINCx0YDQvtGB0LDRjtGCINC/0YDQvtGG0LXRgdGBINGA0LXQs9C40YHRgtGA0LDRhtC40LgsINC10YHQu9C4INC+0L0g0L/RgNC10LLRi9GI0LDQtdGCIDMwINGB0LXQutGD0L3QtC4g0JjQvNC10L3QvdC+INC/0L7RjdGC0L7QvNGDICoq0LHQtdGB0YjQvtCy0L3QsNGPINCw0LLRgtC+0YDQuNC30LDRhtC40Y8g0LIg0L7QtNC40L0g0LrQu9C40LoqKiDRgdGC0LDQu9CwINC60YDQuNGC0LjRh9C10YHQutC4INCy0LDQttC90YvQvCDRjdC70LXQvNC10L3RgtC+0Lwg0LvRjtCx0L7QuSAqbWluaeKAkWFwcCog0LIgVGVsZWdyYW0uINCSINC/0YDQtdC00YvQtNGD0YnQtdC5INGB0YLQsNGC0YzQtSDQvNGLINGA0LDRgdGB0LzQvtGC0YDQtdC70Lgg0L7QsdGJ0LjQtSDQv9GA0LXQuNC80YPRidC10YHRgtCy0LAg0YLQsNC60L7Qs9C+INC/0L7QtNGF0L7QtNCwOyDRgtC10L/QtdGA0Ywg0L/QvtC00YDQvtCx0L3QtdC1INGA0LDQt9Cx0LXRgNGR0LwsINC60LDQuiDQuNC80LXQvdC90L4g0YDQtdCw0LvQuNC30YPQtdGC0YHRjyAqKtC+0LTQvdC+0LrQu9C40LrQvtCy0YvQuSDQstGF0L7QtCoqINCyINC80LjQvdC44oCR0L/RgNC40LvQvtC20LXQvdC40Y/RhSDQuCDQutCw0LrQuNC1INC00LDQvdC90YvQtSDQv9GA0Lgg0Y3RgtC+0Lwg0L7QsdGA0LDQsdCw0YLRi9Cy0LDRjtGC0YHRjy4KCioq0JDQvdCw0LvQuNGC0LjRh9C10YHQutC40LUg0LTQsNC90L3Ri9C1INC/0L7QutCw0LfRi9Cy0LDRjtGCLCDRh9GC0L4g0YHQvtC60YDQsNGJ0LXQvdC40LUg0LLRgNC10LzQtdC90Lgg0LLRhdC+0LTQsCDRgSAzMCDRgdC10LrRg9C90LQg0LTQviAy4oCRMyDRgdC10LrRg9C90LQg0L/QvtCy0YvRiNCw0LXRgiDQstC10YDQvtGP0YLQvdC+0YHRgtGMINC30LDQstC10YDRiNC10L3QuNGPINC/0LXRgNCy0L7QuSDRgdC10YHRgdC40Lgg0L/QvtGH0YLQuCDQstC00LLQvtC1LCDRh9GC0L4g0L3QsNC/0YDRj9C80YPRjiDQvtGC0YDQsNC20LDQtdGC0YHRjyDQvdCwINGA0L7RgdGC0LUg0YPQtNC10YDQttCw0L3QuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5INCyINC00L7Qu9Cz0L7RgdGA0L7Rh9C90L7QuSDQv9C10YDRgdC/0LXQutGC0LjQstC1LiDQn9C+0YfQtdC80YMg0YPRgdC60L7RgNC10L3QvdGL0Lkg0LLRhdC+0LQg0LLQsNC20LXQvSDQtNC70Y8gVGVsZWdyYW3igJFtaW5p4oCRYXBwINCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCDQvNC+0LHQuNC70YzQvdGL0YUg0YHQtdGA0LLQuNGB0L7QsiDQvtC20LjQtNCw0Y7RgiDQvNCz0L3QvtCy0LXQvdC90L7Qs9C+INC00L7RgdGC0YPQv9CwINCx0LXQtyDQu9C40YjQvdC40YUg0LfQsNC/0YDQvtGB0L7QsiDQv9Cw0YDQvtC70LXQuS4g0J/RgNC4INGN0YLQvtC8IFRlbGVncmFtKiog0YPQttC1INC+0LHQu9Cw0LTQsNC10YIg0L/RgNC+0LLQtdGA0LXQvdC90YvQvCDQutCw0L3QsNC70L7QvCDQutC+0LzQvNGD0L3QuNC60LDRhtC40Lg6INC60LDQttC00YvQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LjQvNC10LXRgiDRg9C90LjQutCw0LvRjNC90YvQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuCDQvtGC0LrRgNGL0YLRi9C5INGC0L7QutC10L0sINC60L7RgtC+0YDRi9C5INC80L7QttC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC00LvRjyDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjyDQu9C40YfQvdC+0YHRgtC4LiDQn9C+INC00LDQvdC90YvQvCBb0J/QvtC00YDQvtCx0L3QtdC1IDNdKGh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5hcy9ya3oxdW54bTM3YnZsLm1kKSwg0LHQvtC70LXQtSA3MOKAryUg0LDQutGC0LjQstC90YvRhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSBUZWxlZ3JhbSDRgdC+0LPQu9Cw0YHQvdGLINC00LXQu9C40YLRjNGB0Y8g0YHQstC+0LjQvCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNC+0LwsINC10YHQu9C4INGN0YLQviDRg9C/0YDQvtGJ0LDQtdGCINC/0YDQvtGG0LXRgdGBINCy0YXQvtC00LAuINCi0LDQutC+0Lkg0LLRi9GB0L7QutC40Lkg0YPRgNC+0LLQtdC90Ywg0YHQvtCz0LvQsNGB0LjRjyDQv9C+0LfQstC+0LvRj9C10YIg0YDQsNC30YDQsNCx0L7RgtGH0LjQutCw0Lwg0YHQvtC60YDQsNGC0LjRgtGMINC60L7Qu9C40YfQtdGB0YLQstC+ICrQt9Cw0L/RgNC+0YHQvtCyKiDQuiDRgdC10YDQstC10YDRgywg0YLQtdC8INGB0LDQvNGL0Lwg0YPQvNC10L3RjNGI0LDRjyDQvdCw0LPRgNGD0LfQutGDINC4INGD0YHQutC+0YDRj9GPINC+0YLQutC70LjQui4KCtCa0YDQvtC80LUg0YLQvtCz0L4sINGD0YHQutC+0YDQtdC90L3Ri9C5INCy0YXQvtC0INC/0L7QstGL0YjQsNC10YIg0LrQvtC90LLQtdGA0YHQuNGOINCyINC80L7QsdC40LvRjNC90YvRhSDRgdGG0LXQvdCw0YDQuNGP0YUsINCz0LTQtSDQutCw0LbQtNGL0Lkg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQuSDQstCy0L7QtCDQvNC+0LbQtdGCINGB0YLQvtC40YLRjCDQv9C+0YLQtdGA0Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLiDQn9GA0Lgg0LDQvdCw0LvQuNC30LUgKirQtNCw0L3QvdGL0YUqKiDQviDQv9C+0LLQtdC00LXQvdC40Lgg0LDRg9C00LjRgtC+0YDQuNC4INCy0LjQtNC90L4sINGH0YLQviDRgdGA0LXQtNC90LXQtSDQstGA0LXQvNGPINCy0LfQsNC40LzQvtC00LXQudGB0YLQstC40Y8g0YEg0LzQuNC90LjigJHQv9GA0LjQu9C+0LbQtdC90LjQtdC8INGB0L3QuNC20LDQtdGC0YHRjyDQvdCwIDM1ICUg0L/QvtGB0LvQtSDQstC90LXQtNGA0LXQvdC40Y8g0L7QtNC90L7QutC70LjQutC+0LLQvtC5INCw0LLRgtC+0YDQuNC30LDRhtC40LgsINCwINC/0L7QutCw0LfQsNGC0LXQu9GMINGD0LTQtdGA0LbQsNC90LjRjyDRgNCw0YHRgtC10YIg0L3QsCAxMiAlLgoKIyMjINCi0LXRhdC90LjRh9C10YHQutCw0Y8g0YDQtdCw0LvQuNC30LDRhtC40Y8g0L7QtNC90L7QutC70LjQutC+0LLQvtCz0L4g0LLRhdC+0LTQsAoK0JTQu9GPINGA0LXQsNC70LjQt9Cw0YbQuNC4ICoq0L7QtNC90L7Qs9C+INC60LvQuNC60LAqKiDQsiDQvNC40L3QuOKAkdC/0YDQuNC70L7QttC10L3QuNC4IFRlbGVncmFtINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQvNC10YXQsNC90LjQt9C8IFRlbGVncmFtLldlYkFwcC5pbml0RGF0YSAuINCf0YDQuCDQvtGC0LrRgNGL0YLQuNC4INC80LjQvdC44oCR0L/RgNC40LvQvtC20LXQvdC40Y8g0YHQtdGA0LLQtdGAINC/0L7Qu9GD0YfQsNC10YIg0LfQsNGI0LjRhNGA0L7QstCw0L3QvdGD0Y4g0YHRgtGA0L7QutGDLCDRgdC+0LTQtdGA0LbQsNGJ0YPRjiDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINCy0YDQtdC80LXQvdC90YPRjiDQvNC10YLQutGDINC4INC/0L7QtNC/0LjRgdGMLiDQn9GA0LjQu9C+0LbQtdC90LjQtSDQv9GA0L7QstC10YDRj9C10YIg0L/QvtC00L/QuNGB0YwsINC40YHQv9C+0LvRjNC30YPRjyDQv9GD0LHQu9C40YfQvdGL0Lkg0LrQu9GO0YcgVGVsZWdyYW0sINC4LCDQtdGB0LvQuCDQv9GA0L7QstC10YDQutCwINC/0YDQvtGF0L7QtNC40YIg0YPRgdC/0LXRiNC90L4sINGB0YDQsNC30YMg0YHRh9C40YLQsNC10YIg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCw0YPRgtC10L3RgtC40YTQuNGG0LjRgNC+0LLQsNC90L3Ri9C8LiDQotCw0LrQvtC5INC/0L7QtNGF0L7QtCDRg9GB0YLRgNCw0L3Rj9C10YIg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Ywg0LIg0L7RgtC00LXQu9GM0L3QvtC8INCy0LLQvtC00LUg0LvQvtCz0LjQvdCwINC4INC/0LDRgNC+0LvRjy4KCtCS0LDQttC90L4g0L7RgtC80LXRgtC40YLRjCwg0YfRgtC+INCyINC/0YDQvtGG0LXRgdGB0LUg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuCDQv9C10YDQtdC00LDRjtGC0YHRjyDRgtC+0LvRjNC60L4g0L3QtdC+0LHRhdC+0LTQuNC80YvQtSAqKtC00LDQvdC90YvQtSoqIOKAkyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCwg0LjQvNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQuCwg0L/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4LCDRgdGB0YvQu9C60LAg0L3QsCDQsNCy0LDRgtCw0YAuINCS0YHQtSDQvtGB0YLQsNC70YzQvdGL0LUg0L/QvtC70Y8g0L7RgdGC0LDRjtGC0YHRjyDQv9GD0YHRgtGL0LzQuCwg0YfRgtC+INC80LjQvdC40LzQuNC30LjRgNGD0LXRgiDQvtCx0YrRkdC8INC/0LXRgNC10LTQsNCy0LDQtdC80L7QuSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQuCDRgdC90LjQttCw0LXRgiDRgNC40YHQuiDRg9GC0LXRh9C60Lgg0L/QtdGA0YHQvtC90LDQu9GM0L3Ri9GFINC00LDQvdC90YvRhS4KCiMjIyDQntCx0YDQsNCx0L7RgtC60LAg0LfQsNC/0YDQvtGB0L7QsiDQuCDQsdC10LfQvtC/0LDRgdC90L7RgdGC0YwKCtCf0L7RgdC70LUg0YPRgdC/0LXRiNC90L7QuSDQv9GA0L7QstC10YDQutC4IGluaXREYXRhINGB0LXRgNCy0LXRgCDQvNC+0LbQtdGCINGB0YTQvtGA0LzQuNGA0L7QstCw0YLRjCBKV1TigJHRgtC+0LrQtdC9LCDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINC40YHQv9C+0LvRjNC30L7QstCw0YLRjNGB0Y8g0LTQu9GPINC/0L7RgdC70LXQtNGD0Y7RidC40YUg0LfQsNC/0YDQvtGB0L7QsiDQuiBBUEkuINCi0LDQutC+0Lkg0YLQvtC60LXQvSDRhdGA0LDQvdC40YLRgdGPINCyINC/0LDQvNGP0YLQuCDQv9GA0LjQu9C+0LbQtdC90LjRjyDQuCDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQvtCx0L3QvtCy0LvRj9C10YLRgdGPINC60LDQttC00YvQtSAyNCDRh9Cw0YHQsCwg0YfRgtC+INC40YHQutC70Y7Rh9Cw0LXRgiDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLRjCDQsiDQv9C+0YHRgtC+0Y/QvdC90YvRhSDQt9Cw0L/RgNC+0YHQsNGFINC6IFRlbGVncmFtINC00LvRjyDQv9C+0LTRgtCy0LXRgNC20LTQtdC90LjRjyDRgdC10YHRgdC40LguINCf0YDQuCDRjdGC0L7QvCDQutCw0LbQtNGL0Lkg0LfQsNC/0YDQvtGBINGB0L7Qv9GA0L7QstC+0LbQtNCw0LXRgtGB0Y8g0L/QvtC00L/QuNGB0YzRjiwg0L/RgNC+0LLQtdGA0Y/QtdC80L7QuSDQvdCwINGB0YLQvtGA0L7QvdC1INGB0LXRgNCy0LXRgNCwLCDRh9GC0L4g0LfQsNGJ0LjRidCw0LXRgiDQvtGCINC/0L7QtNC00LXQu9C60LguCgrQlNC70Y8g0L/QvtCy0YvRiNC10L3QuNGPINGD0YDQvtCy0L3RjyDQt9Cw0YnQuNGC0Ysg0YDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMIFtUZWxlZ3JhbSDQsiDQktC40LrQuNC/0LXQtNC40LhdKGh0dHBzOi8vci4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uYS5vcmcvd2lraS9UZWxlZ3JhbV8o0LzQtdGB0YHQtdC90LTQttC10YApKSDQutCw0Log0LjRgdGC0L7Rh9C90LjQuiDQvtGE0LjRhtC40LDQu9GM0L3Ri9GFINGA0LXQutC+0LzQtdC90LTQsNGG0LjQuSDQv9C+INGA0LDQsdC+0YLQtSDRgSDQutGA0LjQv9GC0L7Qs9GA0LDRhNC40LXQuSBUZWxlZ3JhbS4g0JIg0YfQsNGB0YLQvdC+0YHRgtC4LCDRgdC70LXQtNGD0LXRgiDRgNC10LPRg9C70Y/RgNC90L4g0L7QsdC90L7QstC70Y/RgtGMINC/0YPQsdC70LjRh9C90YvQuSDQutC70Y7RhyDQuCDQv9GA0L7QstC10YDRj9GC0Ywg0YHRgNC+0Log0LTQtdC50YHRgtCy0LjRjyDRgtC+0LrQtdC90LAsINGH0YLQvtCx0Ysg0L/RgNC10LTQvtGC0LLRgNCw0YLQuNGC0Ywg0LLQvtC30LzQvtC20L3Ri9C1INCw0YLQsNC60Lgg0L/QvtCy0YLQvtGA0L3QvtCz0L4g0LLQvtGB0L/RgNC+0LjQt9Cy0LXQtNC10L3QuNGPLgoKIyMjINCf0YDQsNC60YLQuNGH0LXRgdC60LjQtSDRgNC10LrQvtC80LXQvdC00LDRhtC40Lgg0LTQu9GPINGA0LDQt9GA0LDQsdC+0YLRh9C40LrQvtCyCgrQldGB0LvQuCDQstGLINC/0LvQsNC90LjRgNGD0LXRgtC1INCy0L3QtdC00YDQuNGC0Ywg0L7QtNC90L7QutC70LjQutC+0LLRi9C5INCy0YXQvtC0INCyINGB0LLQvtGRINC80LjQvdC44oCR0L/RgNC40LvQvtC20LXQvdC40LUsINC+0LHRgNCw0YLQuNGC0LUg0LLQvdC40LzQsNC90LjQtSDQvdCwINGB0LvQtdC00YPRjtGJ0LjQtSDRiNCw0LPQuDoKCi0g0J/QvtC00LrQu9GO0YfQuNGC0LUg0L/RgNC+0LLQtdGA0LrRgyDQv9C+0LTQv9C40YHQuCBpbml0RGF0YSDRgdGA0LDQt9GDINC/0L7RgdC70LUg0LfQsNCz0YDRg9C30LrQuCDQstC10LHigJHQuNC90YLQtdGA0YTQtdC50YHQsC4KCi0g0KHRhNC+0YDQvNC40YDRg9C50YLQtSDQutC+0YDQvtGC0LrQvtC20LjQstGD0YnQuNC5IEpXVOKAkdGC0L7QutC10L0g0Lgg0YXRgNCw0L3QuNGC0LUg0LXQs9C+INCyINCx0LXQt9C+0L/QsNGB0L3QvtC8INC80LXRgdGC0LUgKNC90LDQv9GA0LjQvNC10YAsINCyINC/0LDQvNGP0YLQuCwg0LAg0L3QtSDQsiBsb2NhbFN0b3JhZ2UgKS4KCi0g0J7Qs9GA0LDQvdC40YfRjNGC0LUg0L3QsNCx0L7RgCDQv9C10YDQtdC00LDQstCw0LXQvNGL0YUgKirQtNCw0L3QvdGL0YUqKiDRgtC+0LvRjNC60L4g0YLQtdC80LgsINC60L7RgtC+0YDRi9C1INC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INC90YPQttC90Ysg0LTQu9GPINGA0LDQsdC+0YLRiyDQv9GA0LjQu9C+0LbQtdC90LjRjy4KCi0g0KDQtdCz0YPQu9GP0YDQvdC+INC+0LHQvdC+0LLQu9GP0LnRgtC1INC/0YPQsdC70LjRh9C90YvQuSDQutC70Y7RhyBUZWxlZ3JhbSDQuCDQv9GA0L7QstC10YDRj9C50YLQtSDQvNC10YLQutC4INCy0YDQtdC80LXQvdC4LCDRh9GC0L7QsdGLINC40YHQutC70Y7Rh9C40YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtSDRg9GB0YLQsNGA0LXQstGI0LjRhSDRgtC+0LrQtdC90L7Qsi4KCtCh0LvQtdC00YPRjyDRjdGC0LjQvCDRgNC10LrQvtC80LXQvdC00LDRhtC40Y/QvCwg0LLRiyDRgdC80L7QttC10YLQtSDQvtCx0LXRgdC/0LXRh9C40YLRjCDQsdGL0YHRgtGA0YvQuSDQuCDQsdC10LfQvtC/0LDRgdC90YvQuSDQstGF0L7QtCwg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+INGB0L7QutGA0LDRidCw0Y8g0LrQvtC70LjRh9C10YHRgtCy0L4g0LfQsNC/0YDQvtGB0L7QsiDQuiDRgdC10YDQstC10YDRgyDQuCDQv9C+0LLRi9GI0LDRjyDRg9C00L7QstC70LXRgtCy0L7RgNGR0L3QvdC+0YHRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LgoKIyMjINCX0LDQutC70Y7Rh9C10L3QuNC1CgrQntC00L3QvtC60LvQuNC60L7QstCw0Y8g0LDQstGC0L7RgNC40LfQsNGG0LjRjyDQsiBUZWxlZ3JhbeKAkW1pbmnigJFhcHAg0LTQtdC80L7QvdGB0YLRgNC40YDRg9C10YIsINC60LDQuiDRgdC+0YfQtdGC0LDQvdC40LUg0YPQttC1INC/0YDQvtCy0LXRgNC10L3QvdGL0YUg0LrQsNC90LDQu9C+0LIg0LrQvtC80LzRg9C90LjQutCw0YbQuNC4INC4INC80LjQvdC40LzQsNC70YzQvdC+0LPQviDQvtCx0YrRkdC80LAg0L/QtdGA0LXQtNCw0LLQsNC10LzRi9GFICoq0LTQsNC90L3Ri9GFKiog0LzQvtC20LXRgiDRgdGD0YnQtdGB0YLQstC10L3QvdC+INGD0LvRg9GH0YjQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40Lkg0L7Qv9GL0YIuINCf0YDQuCDQv9GA0LDQstC40LvRjNC90L7QuSDRgNC10LDQu9C40LfQsNGG0LjQuCDRgtCw0LrQvtC5INC/0L7QtNGF0L7QtCDRg9C80LXQvdGM0YjQsNC10YIg0LrQvtC70LjRh9C10YHRgtCy0L4g0LfQsNC/0YDQvtGB0L7Qsiwg0YPRgdC60L7RgNGP0LXRgiDQvtGC0LrQu9C40Log0Lgg0L/QvtCy0YvRiNCw0LXRgiDQutC+0L3QstC10YDRgdC40Y4sINGH0YLQviDQvtGB0L7QsdC10L3QvdC+INCy0LDQttC90L4g0LIg0YPRgdC70L7QstC40Y/RhSDQstGL0YHQvtC60L7QuSDQutC+0L3QutGD0YDQtdC90YbQuNC4INC80L7QsdC40LvRjNC90YvRhSDRgdC10YDQstC40YHQvtCyLiDQlNC70Y8g0LTQsNC70YzQvdC10LnRiNC10LPQviDRg9Cz0LvRg9Cx0LvQtdC90LjRjyDRgtC10LzRiyDRgNC10LrQvtC80LXQvdC00YPQtdC8INC+0LfQvdCw0LrQvtC80LjRgtGM0YHRjyDRgSBb0YLQtdGF0L3QuNGH0LXRgdC60LjQtSDQtNC10YLQsNC70LhdKGh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5hcy9ya3oxdW54bTM3YnZsLm1kKSwg0LPQtNC1INGA0LDRgdC60YDRi9GC0Ysg0L3RjtCw0L3RgdGLINC40L3RgtC10LPRgNCw0YbQuNC4INC4INC/0YDQuNC80LXRgNGLINC60L7QtNCwLiDQn9GA0LjQvNC10L3Rj9GPINC+0L/QuNGB0LDQvdC90YvQtSDQv9GA0LDQutGC0LjQutC4LCDQstGLINGB0LzQvtC20LXRgtC1INGB0L7Qt9C00LDRgtGMINCx0L7Qu9C10LUgKtCx0L7Qu9C10LUqINGD0LTQvtCx0L3Ri9C5INC4INC90LDQtNGR0LbQvdGL0Lkg0L/RgNC+0YbQtdGB0YEg0LLRhdC+0LTQsCwg0L7RgtCy0LXRh9Cw0Y7RidC40Lkg0YLRgNC10LHQvtCy0LDQvdC40Y/QvCDRgdC+0LLRgNC10LzQtdC90L3Ri9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5Li8qIHBhY2thZ2Ugd2hhdGV2ZXI7IC8vIGRvbid0IHBsYWNlIHBhY2thZ2UgbmFtZSEgKi8KCmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgl9Cn0=
compilation info
Main.java:1: error: illegal character: '#'
# ???????????? ???? ? Telegram?mini?app: ???????????? ? ??????????
^
Main.java:1: error: class, interface, or enum expected
# ???????????? ???? ? Telegram?mini?app: ???????????? ? ??????????
^
Main.java:1: error: illegal character: '\u2011'
# ???????????? ???? ? Telegram?mini?app: ???????????? ? ??????????
^
Main.java:1: error: illegal character: '\u2011'
# ???????????? ???? ? Telegram?mini?app: ???????????? ? ??????????
^
Main.java:3: error: illegal character: '\u2011'
? ??????????? ????????? ???????????? ???????????? ??? ???? ???????????? ?? ????????, ????????? ??????????? ????? ??????. ?? ??????????? ???????????? Statista ????? 60 % ????????????? ???????? ??????? ??????? ???????????, ???? ?? ????????? 30 ??????. ?????? ??????? **????????? ??????????? ? ???? ????** ????? ?????????? ?????? ????????? ????? *mini?app* ? Telegram. ? ?????????? ?????? ?? ??????????? ????? ???????????? ?????? ???????; ?????? ????????? ????????, ??? ?????? ??????????? **???????????? ????** ? ???????????????? ? ????? ?????? ??? ???? ??????????????.
^
Main.java:3: error: class, interface, or enum expected
? ??????????? ????????? ???????????? ???????????? ??? ???? ???????????? ?? ????????, ????????? ??????????? ????? ??????. ?? ??????????? ???????????? Statista ????? 60 % ????????????? ???????? ??????? ??????? ???????????, ???? ?? ????????? 30 ??????. ?????? ??????? **????????? ??????????? ? ???? ????** ????? ?????????? ?????? ????????? ????? *mini?app* ? Telegram. ? ?????????? ?????? ?? ??????????? ????? ???????????? ?????? ???????; ?????? ????????? ????????, ??? ?????? ??????????? **???????????? ????** ? ???????????????? ? ????? ?????? ??? ???? ??????????????.
^
Main.java:3: error: illegal character: '\u2011'
? ??????????? ????????? ???????????? ???????????? ??? ???? ???????????? ?? ????????, ????????? ??????????? ????? ??????. ?? ??????????? ???????????? Statista ????? 60 % ????????????? ???????? ??????? ??????? ???????????, ???? ?? ????????? 30 ??????. ?????? ??????? **????????? ??????????? ? ???? ????** ????? ?????????? ?????? ????????? ????? *mini?app* ? Telegram. ? ?????????? ?????? ?? ??????????? ????? ???????????? ?????? ???????; ?????? ????????? ????????, ??? ?????? ??????????? **???????????? ????** ? ???????????????? ? ????? ?????? ??? ???? ??????????????.
^
Main.java:5: error: illegal character: '\u2011'
**????????????? ?????? ??????????, ??? ?????????? ??????? ????? ? 30 ?????? ?? 2?3 ?????? ???????? ??????????? ?????????? ?????? ?????? ????? ?????, ??? ???????? ?????????? ?? ????? ????????? ????????????? ? ???????????? ???????????. ?????? ?????????? ???? ????? ??? Telegram?mini?app ???????????? ????????? ???????? ??????? ??????????? ??????? ??? ?????? ???????? ???????. ??? ???? Telegram** ??? ???????? ??????????? ??????? ????????????: ?????? ???????????? ????? ?????????? ????????????? ? ???????? ?????, ??????? ????? ???????????? ??? ????????????? ????????. ?? ?????? [????????? 3](https://write.as/rkz1unxm37bvl.md), ????? 70?% ???????? ????????????? Telegram ???????? ???????? ????? ???????????????, ???? ??? ???????? ??????? ?????. ????? ??????? ??????? ???????? ????????? ????????????? ????????? ?????????? *????????* ? ???????, ??? ????? ???????? ???????? ? ??????? ??????.
^
Main.java:5: error: illegal character: '\u2011'
**????????????? ?????? ??????????, ??? ?????????? ??????? ????? ? 30 ?????? ?? 2?3 ?????? ???????? ??????????? ?????????? ?????? ?????? ????? ?????, ??? ???????? ?????????? ?? ????? ????????? ????????????? ? ???????????? ???????????. ?????? ?????????? ???? ????? ??? Telegram?mini?app ???????????? ????????? ???????? ??????? ??????????? ??????? ??? ?????? ???????? ???????. ??? ???? Telegram** ??? ???????? ??????????? ??????? ????????????: ?????? ???????????? ????? ?????????? ????????????? ? ???????? ?????, ??????? ????? ???????????? ??? ????????????? ????????. ?? ?????? [????????? 3](https://write.as/rkz1unxm37bvl.md), ????? 70?% ???????? ????????????? Telegram ???????? ???????? ????? ???????????????, ???? ??? ???????? ??????? ?????. ????? ??????? ??????? ???????? ????????? ????????????? ????????? ?????????? *????????* ? ???????, ??? ????? ???????? ???????? ? ??????? ??????.
^
Main.java:5: error: illegal character: '\u2011'
**????????????? ?????? ??????????, ??? ?????????? ??????? ????? ? 30 ?????? ?? 2?3 ?????? ???????? ??????????? ?????????? ?????? ?????? ????? ?????, ??? ???????? ?????????? ?? ????? ????????? ????????????? ? ???????????? ???????????. ?????? ?????????? ???? ????? ??? Telegram?mini?app ???????????? ????????? ???????? ??????? ??????????? ??????? ??? ?????? ???????? ???????. ??? ???? Telegram** ??? ???????? ??????????? ??????? ????????????: ?????? ???????????? ????? ?????????? ????????????? ? ???????? ?????, ??????? ????? ???????????? ??? ????????????? ????????. ?? ?????? [????????? 3](https://write.as/rkz1unxm37bvl.md), ????? 70?% ???????? ????????????? Telegram ???????? ???????? ????? ???????????????, ???? ??? ???????? ??????? ?????. ????? ??????? ??????? ???????? ????????? ????????????? ????????? ?????????? *????????* ? ???????, ??? ????? ???????? ???????? ? ??????? ??????.
^
Main.java:7: error: illegal character: '\u2011'
????? ????, ?????????? ???? ???????? ????????? ? ????????? ?????????, ??? ?????? ?????????????? ???? ????? ?????? ?????? ????????????. ??? ??????? **??????** ? ????????? ????????? ?????, ??? ??????? ????? ?????????????? ? ???????????????? ????????? ?? 35 % ????? ????????? ???????????? ???????????, ? ?????????? ????????? ?????? ?? 12 %.
^
Main.java:9: error: illegal character: '#'
### ??????????? ?????????? ????????????? ?????
^
Main.java:9: error: illegal character: '#'
### ??????????? ?????????? ????????????? ?????
^
Main.java:9: error: illegal character: '#'
### ??????????? ?????????? ????????????? ?????
^
Main.java:11: error: illegal character: '\u2011'
??? ?????????? **?????? ?????** ? ??????????????? Telegram ???????????? ???????? Telegram.WebApp.initData . ??? ???????? ??????????????? ?????? ???????? ????????????? ??????, ?????????? ????????????? ????????????, ????????? ????? ? ???????. ?????????? ????????? ???????, ????????? ????????? ???? Telegram, ?, ???? ???????? ???????? ???????, ????? ??????? ???????????? ???????????????????. ????? ?????? ????????? ????????????? ? ????????? ????? ?????? ? ??????.
^
Main.java:11: error: illegal character: '\u2011'
??? ?????????? **?????? ?????** ? ??????????????? Telegram ???????????? ???????? Telegram.WebApp.initData . ??? ???????? ??????????????? ?????? ???????? ????????????? ??????, ?????????? ????????????? ????????????, ????????? ????? ? ???????. ?????????? ????????? ???????, ????????? ????????? ???? Telegram, ?, ???? ???????? ???????? ???????, ????? ??????? ???????????? ???????????????????. ????? ?????? ????????? ????????????? ? ????????? ????? ?????? ? ??????.
^
Main.java:13: error: illegal character: '\u2013'
????? ????????, ??? ? ???????? ?????????????? ?????????? ?????? ??????????? **??????** ? ?????????????, ??? ???????????? ?, ??? ?????????????, ?????? ?? ??????. ??? ????????? ???? ???????? ???????, ??? ???????????? ????? ???????????? ?????????? ? ??????? ???? ?????? ???????????? ??????.
^
Main.java:15: error: illegal character: '#'
### ????????? ???????? ? ????????????
^
Main.java:15: error: illegal character: '#'
### ????????? ???????? ? ????????????
^
Main.java:15: error: illegal character: '#'
### ????????? ???????? ? ????????????
^
Main.java:17: error: illegal character: '\u2011'
????? ???????? ???????? initData ?????? ????? ???????????? JWT??????, ??????? ????? ?????????????? ??? ??????????? ???????? ? API. ????? ????? ???????? ? ?????? ?????????? ? ????????????? ??????????? ?????? 24 ????, ??? ????????? ????????????? ? ?????????? ???????? ? Telegram ??? ????????????? ??????. ??? ???? ?????? ?????? ?????????????? ????????, ??????????? ?? ??????? ???????, ??? ???????? ?? ????????.
^
Main.java:21: error: illegal character: '#'
### ???????????? ???????????? ??? ?????????????
^
Main.java:21: error: illegal character: '#'
### ???????????? ???????????? ??? ?????????????
^
Main.java:21: error: illegal character: '#'
### ???????????? ???????????? ??? ?????????????
^
Main.java:23: error: illegal character: '\u2011'
???? ?? ?????????? ???????? ???????????? ???? ? ???? ???????????????, ???????? ???????? ?? ????????? ????:
^
Main.java:25: error: illegal character: '\u2011'
- ?????????? ???????? ??????? initData ????? ????? ???????? ??????????????.
^
Main.java:27: error: illegal character: '\u2011'
- ??????????? ?????????????? JWT?????? ? ??????? ??? ? ?????????? ????? (????????, ? ??????, ? ?? ? localStorage ).
^
Main.java:35: error: illegal character: '#'
### ??????????
^
Main.java:35: error: illegal character: '#'
### ??????????
^
Main.java:35: error: illegal character: '#'
### ??????????
^
Main.java:37: error: illegal character: '\u2011'
???????????? ??????????? ? Telegram?mini?app ?????????????, ??? ????????? ??? ??????????? ??????? ???????????? ? ???????????? ?????? ???????????? **??????** ????? ??????????? ???????? ???????????????? ????. ??? ?????????? ?????????? ????? ?????? ????????? ?????????? ????????, ???????? ?????? ? ???????? ?????????, ??? ???????? ????? ? ???????? ??????? ??????????? ????????? ????????. ??? ??????????? ?????????? ???? ??????????? ???????????? ? [??????????? ??????](https://write.as/rkz1unxm37bvl.md), ??? ???????? ?????? ?????????? ? ??????? ????. ???????? ????????? ????????, ?? ??????? ??????? ????? *?????* ??????? ? ???????? ??????? ?????, ?????????? ??????????? ??????????? ?????????????./* package whatever; // don't place package name! */
^
Main.java:37: error: illegal character: '\u2011'
???????????? ??????????? ? Telegram?mini?app ?????????????, ??? ????????? ??? ??????????? ??????? ???????????? ? ???????????? ?????? ???????????? **??????** ????? ??????????? ???????? ???????????????? ????. ??? ?????????? ?????????? ????? ?????? ????????? ?????????? ????????, ???????? ?????? ? ???????? ?????????, ??? ???????? ????? ? ???????? ??????? ??????????? ????????? ????????. ??? ??????????? ?????????? ???? ??????????? ???????????? ? [??????????? ??????](https://write.as/rkz1unxm37bvl.md), ??? ???????? ?????? ?????????? ? ??????? ????. ???????? ????????? ????????, ?? ??????? ??????? ????? *?????* ??????? ? ???????? ??????? ?????, ?????????? ??????????? ??????????? ?????????????./* package whatever; // don't place package name! */
^
32 errors
stdout