Простой Telegram-бот на Python за 30 минут
На Хабре, да и не только, про ботов рассказано уже так много, что даже слишком. Но заинтересовавшись пару недель назад данной темой, найти нормальный материал у меня так и не вышло: все статьи были либо для совсем чайников и ограничивались отправкой сообщения в ответ на сообщение пользователя, либо были неактуальны. Это и подтолкнуло меня на написание статьи, которая бы объяснила такому же новичку, как я, как написать и запустить более-менее осмысленного бота (с возможностью расширения функциональности).
Часть 1: Регистрация бота
Самая простая и описанная часть. Очень коротко: нужно найти бота @BotFather, написать ему /start, или /newbot, заполнить поля, которые он спросит (название бота и его короткое имя), и получить сообщение с токеном бота и ссылкой на документацию. Токен нужно сохранить, желательно надёжно, так как это единственный ключ для авторизации бота и взаимодействия с ним.
Часть 2: Подготовка к написанию кода
Как уже было сказано в заголовке, писать бота мы будем на Python’е. В данной статье будет описана работа с библиотекой PyTelegramBotAPI (Telebot). Если у вас не установлен Python, то сперва нужно сделать это: в терминале Linux нужно ввести
Если же вы пользуетесь Windows, то нужно скачать Python с официального сайта .
После, в терминале Linux, или командной строке Windows вводим
Теперь все готово для написания кода.
Часть 3: Получаем сообщения и говорим «Привет»
Небольшое отступление. Телеграмм умеет сообщать боту о действиях пользователя двумя способами: через ответ на запрос сервера (Long Poll), и через Webhook, когда сервер Телеграмма сам присылает сообщение о том, что кто-то написал боту. Второй способ явно выглядит лучше, но требует выделенного IP-адреса, и установленного SSL на сервере. В этой статье я хочу рассказать о написании бота, а не настройке сервера, поэтому пользоваться мы будем Long Poll’ом.
Открывайте ваш любимый текстовый редактор, и давайте писать код бота!
Первое, что нужно сделать это импортировать нашу библиотеку и подключить токен бота:
Теперь объявим метод для получения текстовых сообщений:
В этом участке кода мы объявили слушателя для текстовых сообщений и метод их обработки. Поле content_types может принимать разные значения, и не только одно, например
Будет реагировать на текстовые сообщения, документы и аудио. Более подробно можно почитать в официальной документации
Теперь добавим в наш метод немного функционала: если пользователь напишет нам «Привет», то скажем ему «Привет, чем я могу помочь?», а если нам напишут команду «/help», то скажем пользователю написать «Привет»:
Данный участок кода не требует комментариев, как мне кажется. Теперь нужно добавить в наш код только одну строчку (вне всех методов).
Теперь наш бот будет постоянно спрашивать у сервера Телеграмма «Мне кто-нибудь написал?», и если мы напишем нашему боту, то Телеграмм передаст ему наше сообщение. Сохраняем весь файл, и пишем в консоли
Где bot.py – имя нашего файла.
Теперь можно написать боту и посмотреть на результат:

Часть 4: Кнопки и ветки сообщений
Отправлять сообщения это несомненно весело, но ещё веселее вести с пользователем диалог: задавать ему вопросы и получать на них ответы. Допустим, теперь наш бот будет спрашивать у пользователя по очереди его имя, фамилию и возраст. Для этого мы будем использовать метод register_next_step_handler бота:
И так, данные пользователя мы записали. В этом примере показан очень упрощённый пример, по хорошему, хранить промежуточные данные и состояния пользователя нужно в БД, но мы сегодня работаем с ботом, а не с базами данных. Последний штрих – запросим у пользователей подтверждение того, что все введено верно, да не просто так, а с кнопками! Для этого немного отредактируем код метода get_age
И теперь наш бот отправляет клавиатуру, но если на нее нажать, то ничего не произойдёт. Потому что мы не написали метод-обработчик. Давайте напишем:
Бот обратной связи в Telegram

Сегодня мы расскажем о том, как быстро создать бот обратной связи в Telegram с помощью Livegram Bot. Это будет полезно администраторам каналов, которые хотят получить фидбек и остаться анонимными, компаниям для создания своего небольшого колл-центра и пользователям, которые не хотят заспамить личку множеством чатов.
Создание бота
Перед тем, как приступить к работе с Livegram, нам нужно создать своего бота через @BotFather. Для этого переходим к боту, запускаем команду /newbot и вводим Имя и Username (должно заканчиваться на «bot») вашего бота. Скопируйте уникальный Токен бота, он понадобится для подключения к Livegram.

Теперь можно приступить к настройке @livegrambot:
Запускаем бот, выбираем язык, вводим команду /addbot и отправляем Токен вашего бота. Если все сделано правильно, вы получите сообщение о том, что бот успешно подключен к Livegram и уже готов к работе!

Подключение бота к чату
Все сообщения от пользователей по умолчанию приходят в бот и доступны только вам. Но для более удобного использования можно подключить бот к группе и все сообщения будут приходить туда. Кроме того, это даст возможность отвечать на сообщения другим участникам группы.
- Создайте группу и преобразуйте ее в супергруппу.
- Добавьте членов вашей команды, которые будут отвечать на сообщения.
- Добавьте вашего бота в супергруппу.
Таким образом у вас получится «колл центр», где все участники супергруппы смогут отвечать на входящие сообщения.
Ответы на сообщения
Чтобы ответить на входящие сообщения, нажмите Reply (Ответить) или используйте жест — свайп влево.
Если сообщения некоторых пользователей вам показались нежелательными, вы можете отправить их в бан. Ответьте на сообщение командой /ban для пожизненной блокировки пользователя. Для временного ограничения ответьте командой, например, /ban 2d, где «2d» обозначает количество дней. Также допускаются следующие форматы времени: 24h(часы), 365d(дни) или 12m(месяцы).
Приветственное сообщение
По умолчанию приветственное сообщение, которое получает пользователь, запустивший ваш бот, выглядит так:
Здравствуйте! Напишите ваш вопрос и мы ответим Вам в ближайшее время.
Вы можете изменить его по своему желанию. Нажмите кнопку «Настроить бот» — «Тексты» — выбор языка — «Изменить тексты» и отправьте боту ваш текст приветствия. Чтобы сохранить изменения, нажмите кнопку «Завершить редактирование».

Рассылка
С помощью этого бота вы также сможете отправлять рассылку своим пользователям. Это очень удобно для ответа на одинаковые сообщения или для важных уведомлений.
Перейдите в настройки бота, нажмите кнопку «Рассылка», выберите язык, пользователям которого вы хотите отправить сообщения, и отправьте сам пост. Если все верно, введите команду /done. Когда будете готовы отправить рассылку, введите команду /send.
После окончания вы получите отчет о количестве человек, получивших сообщения и заблокировавших бота.
Статистика
Посмотреть отчет о всех входящих сообщениях и ответах можно в разделе «Статистика».
Telegram bot api. Как сделать, чтобы бот отвечал на сообщения?
Как сделать так, чтобы бот отвечал на сообщение пересылая его?
Я умею делать ответ без пересылки, но я хочу чтобы бот пересылал. Пример на скрине. На вики не могу найти внятное обьяснение.

UPD. Помогло использование параметра replyToMessageId, но только в переписке с ботом тет-а-тет. а в чатах он отвечает только на команды через слеш. а мне нужно чтобы он отвечал на сообщение без слеша. прикрепил еще один скриншот.
Добавление бота в чат Телеграм

Чат-боты используют многие бизнесы: это помогает автоматизировать рутинную работу. При этом они довольно хорошо справляются со своей работой. SaluteBot, например, может не только выдавать пользователю готовые пункты для выбора, чтобы продолжить диалог, но и анализировать написанный текст, чтобы подобрать нужный ответ из базы.
В статье расскажем, как добавить робота в чат Телеграм и как настроить его работу по определённому сценарию.
Как добавить в Телеграм
За создание ботов в Телеграме отвечает… телеграм-бот! Если вы хотите создать нового робота, пройдите следующие шаги:
- Через поиск найдите профиль BotFather или перейдите по ссылке https://telegram.me/BotFather.
- Нажмите кнопку «Start» в чате.
- Введите команду /newbot.
- Укажите название — это то, как пользователи будут видеть его в списке контактов.
- Укажите системное имя: это логин после знака @.
Системное имя должно быть уникальным, а название может повторяться с уже существующими.
Когда бот будет создан, вы увидите токен. Он нужен для интеграции со сценариями. Если вы забыли сохранить токен, просто напишите команду /token в диалог с BotFather.
Основа для чат-бота создана, и ему даже можно написать сообщение. Но чтобы он заработал, нужно создать для него сценарий. Сделать это можно через сервис SaluteBot.
Простая настройка в Studio
Настройка и возможности SaluteBot
Чтобы создать свой собственный сценарий и привязать его к чат-боту, зарегистрируйтесь в Studio и войдите в аккаунт. Мы будем использовать инструмент SaluteBot, который помогает создать сценарий в режиме карты. Навыки программирования не нужны, если нет интеграции со сторонними системами.
После этого зарегистрируйтесь в сервисе Jivo, который свяжет робота со сценарием. Для работы потребуется профессиональный аккаунт, первые 14 дней им можно пользоваться бесплатно.
Далее порядок действий будет следующий:
- Зайдите в Studio и нажмите «Создать проект».
- Выберите «Приложения» — SaluteBot.
- Нажмите «Добавить аккаунт» и авторизуйтесь в Jivo.
- Придумайте название проекта.
- Выберите «Свой сценарий», это бесплатное создание сценария в режиме конструктора.
- Далее вы попадёте в конструктор, где сможете собрать нужный сценарий.
Вот какие возможности есть в конструкторе:
- Отправка пользователю текста (приветствие, ответ на сообщение или на действие).
- Запрос данных — если нужно уточнить у клиента какую-то информацию, например, имя, телефон, номер заказа.
- Условие — сценарий должен гибко реагировать на действия клиента, поэтому при выборе того или иного пункта меню бот, в зависимости от настроенного условия, будет реагировать по-разному.
- Перевод диалога на оператора. Если бот не справляется с вопросом, он автоматически пригласит оператора в чат.
- Вызов скрипта — для продвинутых сценариев, где подразумевается обмен данными со сторонними системами.
Как добавить в группу
Самый частый сценарий для чат-ботов в группе — это онбординг для новых участников и модерация сообщений на предмет запрещённых тем с вынесением предупреждений.
Чтобы использовать телеграм-бот в группе, просто выберите его как нового участника: созданный нами робот — это обычный отдельный аккаунт в списке участников группы.
- Перейдите в настройки группы в Телеграме.
- Нажмите на кнопку «Добавить участников».
- Найдите бот по системному имени через @имя.
- Нажмите на него, а затем — «ОК», чтобы добавить его к телеграм-чату.
После того как робот добавлен в группу, он начнёт отрабатывать сценарий, который был в него заложен в конструкторе.
Таким образом можно использовать не только созданный самостоятельно бот, но и любой уже существующий.
Как добавить в канал
В канале чат-боты используются для отложенных публикаций или как путеводитель по каналу. Чтобы робот мог создавать посты или иначе действовать от имени канала, нужно сделать его администратором. Вот как это сделать:
- Зайдите в телеграм-канал, нажмите на три точки и выберите «Управление каналом».
- Перейдите в раздел «Администраторы».
- В поиске найдите бот по системному имени через @имя.
- Добавьте его в качестве администратора и укажите, какие разрешения у него должны быть. Если не выдать нужное разрешение, то некоторые функции могут не работать.
В канал можно добавить собственный бот или выбрать уже существующий.
Для личных чатов
Если у вас нет группы или канала, и они для ваших задач не требуются, можно использовать бот в режиме личных сообщений. Это возможно сразу после того, как он создан, нужно просто написать ему сообщение напрямую.
Такой тип использования, пожалуй, самый востребованный у бизнеса, потому что в режиме личных сообщений клиент может передавать свои данные, а если диалог зашёл в тупик, в любой момент подключится оператор.
А ещё работа с ботом напрямую позволяет протестировать его перед использованием в группе или канале — так можно проверить, что все функции работают, как ожидалось.