Игровая платформа

Боты теперь могут предлагать пользователям поиграть в HTML5-игры, в группе или приватных чатах. Игры — это новый тип контента, который бот может отправлять пользователям.

Играйте с друзьями
Примечание

Эта страница предназначена в первую очередь для разработчиков ботов. Если вы хотите почитать об играх в Telegram более простым языком, добро пожаловать в блог.

Чтобы посмотреть на способности игровой платформы, попробуйте поиграть через ботов @gamebot и @gamee.

Создание игры

Чтобы создать игру, вам необходимо отправить команду /newgame боту @BotFather. В процессе создание вы должны будете ввести название игры, описание, фото и необязательную анимацию геймплея. Игры с анимированной картинкой выглядят более привлекательно в списке (примеры: Lumberjack и Corsairs).

Запуск игры

Как только игра создана, её можно отправлять в группы или чаты точно так же, как и обычное сообщение. Второй способ — отправить её при помощи инлайн-режима. Под сообщением с игрой всегда будет инлайн-кнопка, начинающая игру. Как только кто-то нажимает кнопку, вашему боту приходит коллбэк с информацией о выбранной игре. Вы отвечаете уникальным URL, сформированный конкретно для этого пользователя, и приложение автоматически открывает игру во встроенном браузере.

Добавление кнопок

Если вы отправите сообщение без кнопок вообще, то к нему автоматически добавится стандартная кнопка «Играть в ИмяИгры». Однако, вы можете добавлять к сообщению и другие кнопки: например, с описанием правил или ссылкой на официальное сообщество.

Важная информация

Первая кнопка в сообщении всегда должна выполнять функцию открытия игры.

Таблица рекордов

Сообщение, к которому прикреплена игра, также может отображать таблицу рекордов для конкретного чата. Как только кто-то занимает первое место по очкам, всем участникам придёт уведомление, а текущая таблица рекордов отобразит новый рейтинг игроков. Также возможно запросить данные о рейтинге игроков, чтобы создать такую таблицу прямо в игре.

Таблица рекордов в игре LumberjackНовый рекорд в чате

Отправка результатов в чат

В интерфейсе игры в правом верхнем углу всегда будет находиться стандартная системная кнопка «Поделиться»:

Кнопка поделиться в iOSКнопка поделиться в Android

Также вы можете создавать дополнительные кнопки в HTML-странице. Нажатие на такую кнопку приведёт к открытию желаемого чата и отправкой в него сообщения с количеством набранных очков в игре.

Интерактивная таблицаТаблица результатов в сообщении

Чтобы добавить такую кнопку на страницу, добавьте этот скрипт перед закрытием тэга <body>:

<script src="https://telegram.org/js/games.js"></script>
Примечание

Эта библиотека будет работать только в играх, открытых в приложении Telegram. Пожалуйста, не применяйте её за пределами игр.

По нажатию на кнопку должен вызываться метод TelegramGameProxy.shareScore().

Пример вызова

<button onclick="TelegramGameProxy.shareScore()">
    Поделиться
</button>
Предупреждение

Запрещается вызывать этот метод без участия пользователя. Он должен вызываться только при прямом намерении пользователя нажать на кнопку.

Использование параметров URL

Если в вашем URL используется хэш, то имейте в виду, что Telegram может к нему что-нибудь добавить. Названия добавленных параметров будет начинаться с tg (вот пример кода, который их добавляет: games.js#L54). Чтобы достать свои собственные параметры из адреса, вы можете воспользоваться объектом TelegramGameProxy.initParams.

Позаботьтесь об UX

Пожалуйста, протестируйте своё приложение на максимальном количестве разных экранов и ориентаций. Если по каким-то причинам на определённых экранах ваше приложение не работает — не бросайте это просто так и оповестите пользователя — хотя бы просто уведомлением.

См. также документацию Bot API по новым методам и объектам.