Добавление анимации печатания текста Telegram-боту
Написал первого Telegram-бота на java при помощи библиотеки TelegramBotsApi. Реализовал отправку сообщений, всё в целом работает.
Однако, когда текст ответа бота слишком длинный, то отправка этого сообщения занимает некоторое время.
Хотелось бы реализовать появление анимации пишущего карандаша, чтобы пользователь видел, что бот не завис, а пишет.
Ответы (1 шт):
Для этого есть метод 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 секунд или меньше (до того момента, пока вы не отправите пользователю новое сообщение).