Добавление анимации печатания текста Telegram-боту

Рейтинг: 1Ответов: 1Опубликовано: 17.05.2023

Написал первого Telegram-бота на java при помощи библиотеки TelegramBotsApi. Реализовал отправку сообщений, всё в целом работает.

Однако, когда текст ответа бота слишком длинный, то отправка этого сообщения занимает некоторое время.

Хотелось бы реализовать появление анимации пишущего карандаша, чтобы пользователь видел, что бот не завис, а пишет.

Ответы

▲ 0

Для этого есть метод sendChatAction в Telegram Bot API.

Чтобы отправить запрос с помощью библиотеки TelegramBots, сформируйте объект SendChatAction, передайте ему chatId и action:

SendChatAction method = new SendChatAction();
method.setChatId(chatId);
method.setAction(action);
execute(method);

В качестве action передайте одну из следующих констант:

ActionType.TYPING
ActionType.RECORDVIDEO
ActionType.RECORDVIDEONOTE
ActionType.RECORDVOICE
ActionType.UPLOADPHOTO
ActionType.UPLOADVIDEO
ActionType.UPLOADVIDEONOTE
ActionType.UPLOADVOICE
ActionType.UPLOADDOCUMENT
ActionType.FINDLOCATION

Передавайте константу в зависимости от типа контента, который вы передаете. Анимация для разного типа контента будет разная.

Согласно документации, анимация будет отображаться 5 секунд или меньше (до того момента, пока вы не отправите пользователю новое сообщение).