Боты теперь могут предлагать пользователям поиграть в HTML5-игры, в группе или приватных чатах. Игры — это новый тип контента, который бот может отправлять пользователям.
Эта страница предназначена в первую очередь для разработчиков ботов. Если вы хотите почитать об играх в Telegram более простым языком, добро пожаловать в блог.
Чтобы посмотреть на способности игровой платформы, попробуйте поиграть через ботов @gamebot и @gamee.
Чтобы создать игру, вам необходимо отправить команду /newgame
боту @BotFather. В процессе создание вы должны будете ввести название игры, описание, фото и необязательную анимацию геймплея. Игры с анимированной картинкой выглядят более привлекательно в списке (примеры: Lumberjack и Corsairs).
Как только игра создана, её можно отправлять в группы или чаты точно так же, как и обычное сообщение. Второй способ — отправить её при помощи инлайн-режима. Под сообщением с игрой всегда будет инлайн-кнопка, начинающая игру. Как только кто-то нажимает кнопку, вашему боту приходит коллбэк с информацией о выбранной игре. Вы отвечаете уникальным URL, сформированный конкретно для этого пользователя, и приложение автоматически открывает игру во встроенном браузере.
Если вы отправите сообщение без кнопок вообще, то к нему автоматически добавится стандартная кнопка «Играть в ИмяИгры». Однако, вы можете добавлять к сообщению и другие кнопки: например, с описанием правил или ссылкой на официальное сообщество.
Первая кнопка в сообщении всегда должна выполнять функцию открытия игры.
Сообщение, к которому прикреплена игра, также может отображать таблицу рекордов для конкретного чата. Как только кто-то занимает первое место по очкам, всем участникам придёт уведомление, а текущая таблица рекордов отобразит новый рейтинг игроков. Также возможно запросить данные о рейтинге игроков, чтобы создать такую таблицу прямо в игре.
В интерфейсе игры в правом верхнем углу всегда будет находиться стандартная системная кнопка «Поделиться»:
Также вы можете создавать дополнительные кнопки в HTML-странице. Нажатие на такую кнопку приведёт к открытию желаемого чата и отправкой в него сообщения с количеством набранных очков в игре.
Чтобы добавить такую кнопку на страницу, добавьте этот скрипт перед закрытием тэга <body>
:
<script src="https://telegram.org/js/games.js"></script>
Эта библиотека будет работать только в играх, открытых в приложении Telegram. Пожалуйста, не применяйте её за пределами игр.
По нажатию на кнопку должен вызываться метод TelegramGameProxy.shareScore()
.
<button onclick="TelegramGameProxy.shareScore()">
Поделиться
</button>
Запрещается вызывать этот метод без участия пользователя. Он должен вызываться только при прямом намерении пользователя нажать на кнопку.
Если в вашем URL используется хэш, то имейте в виду, что Telegram может к нему что-нибудь добавить. Названия добавленных параметров будет начинаться с tg
(вот пример кода, который их добавляет: games.js#L54). Чтобы достать свои собственные параметры из адреса, вы можете воспользоваться объектом TelegramGameProxy.initParams
.
Пожалуйста, протестируйте своё приложение на максимальном количестве разных экранов и ориентаций. Если по каким-то причинам на определённых экранах ваше приложение не работает — не бросайте это просто так и оповестите пользователя — хотя бы просто уведомлением.
См. также документацию Bot API по новым методам и объектам.