Как сделать чтобы бот отвечал на сообщения
Перейти к содержимому

Как сделать чтобы бот отвечал на сообщения

  • автор:

Простой 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 – имя нашего файла.

Теперь можно написать боту и посмотреть на результат:

image

Часть 4: Кнопки и ветки сообщений

Отправлять сообщения это несомненно весело, но ещё веселее вести с пользователем диалог: задавать ему вопросы и получать на них ответы. Допустим, теперь наш бот будет спрашивать у пользователя по очереди его имя, фамилию и возраст. Для этого мы будем использовать метод register_next_step_handler бота:

И так, данные пользователя мы записали. В этом примере показан очень упрощённый пример, по хорошему, хранить промежуточные данные и состояния пользователя нужно в БД, но мы сегодня работаем с ботом, а не с базами данных. Последний штрих – запросим у пользователей подтверждение того, что все введено верно, да не просто так, а с кнопками! Для этого немного отредактируем код метода get_age

И теперь наш бот отправляет клавиатуру, но если на нее нажать, то ничего не произойдёт. Потому что мы не написали метод-обработчик. Давайте напишем:

Бот обратной связи в Telegram

Сегодня мы расскажем о том, как быстро создать бот обратной связи в Telegram с помощью Livegram Bot. Это будет полезно администраторам каналов, которые хотят получить фидбек и остаться анонимными, компаниям для создания своего небольшого колл-центра и пользователям, которые не хотят заспамить личку множеством чатов.

Создание бота

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

Теперь можно приступить к настройке @livegrambot:

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

Подключение бота к чату

Все сообщения от пользователей по умолчанию приходят в бот и доступны только вам. Но для более удобного использования можно подключить бот к группе и все сообщения будут приходить туда. Кроме того, это даст возможность отвечать на сообщения другим участникам группы.

  1. Создайте группу и преобразуйте ее в супергруппу.
  2. Добавьте членов вашей команды, которые будут отвечать на сообщения.
  3. Добавьте вашего бота в супергруппу.

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

Ответы на сообщения

Чтобы ответить на входящие сообщения, нажмите Reply (Ответить) или используйте жест — свайп влево.

Если сообщения некоторых пользователей вам показались нежелательными, вы можете отправить их в бан. Ответьте на сообщение командой /ban для пожизненной блокировки пользователя. Для временного ограничения ответьте командой, например, /ban 2d, где «2d» обозначает количество дней. Также допускаются следующие форматы времени: 24h(часы), 365d(дни) или 12m(месяцы).

Приветственное сообщение

По умолчанию приветственное сообщение, которое получает пользователь, запустивший ваш бот, выглядит так:

Здравствуйте! Напишите ваш вопрос и мы ответим Вам в ближайшее время.

Вы можете изменить его по своему желанию. Нажмите кнопку «Настроить бот» — «Тексты» — выбор языка — «Изменить тексты» и отправьте боту ваш текст приветствия. Чтобы сохранить изменения, нажмите кнопку «Завершить редактирование».

Рассылка

С помощью этого бота вы также сможете отправлять рассылку своим пользователям. Это очень удобно для ответа на одинаковые сообщения или для важных уведомлений.

Перейдите в настройки бота, нажмите кнопку «Рассылка», выберите язык, пользователям которого вы хотите отправить сообщения, и отправьте сам пост. Если все верно, введите команду /done. Когда будете готовы отправить рассылку, введите команду /send.

После окончания вы получите отчет о количестве человек, получивших сообщения и заблокировавших бота.

Статистика

Посмотреть отчет о всех входящих сообщениях и ответах можно в разделе «Статистика».

Telegram bot api. Как сделать, чтобы бот отвечал на сообщения?

Как сделать так, чтобы бот отвечал на сообщение пересылая его?

Я умею делать ответ без пересылки, но я хочу чтобы бот пересылал. Пример на скрине. На вики не могу найти внятное обьяснение.

скриншот

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

Добавление бота в чат Телеграм

Чат-боты используют многие бизнесы: это помогает автоматизировать рутинную работу. При этом они довольно хорошо справляются со своей работой. SaluteBot, например, может не только выдавать пользователю готовые пункты для выбора, чтобы продолжить диалог, но и анализировать написанный текст, чтобы подобрать нужный ответ из базы.

В статье расскажем, как добавить робота в чат Телеграм и как настроить его работу по определённому сценарию.

Как добавить в Телеграм

За создание ботов в Телеграме отвечает… телеграм-бот! Если вы хотите создать нового робота, пройдите следующие шаги:

  1. Через поиск найдите профиль BotFather или перейдите по ссылке https://telegram.me/BotFather.
  2. Нажмите кнопку «Start» в чате.
  3. Введите команду /newbot.
  4. Укажите название — это то, как пользователи будут видеть его в списке контактов.
  5. Укажите системное имя: это логин после знака @.

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

Когда бот будет создан, вы увидите токен. Он нужен для интеграции со сценариями. Если вы забыли сохранить токен, просто напишите команду /token в диалог с BotFather.

Основа для чат-бота создана, и ему даже можно написать сообщение. Но чтобы он заработал, нужно создать для него сценарий. Сделать это можно через сервис SaluteBot.

Простая настройка в Studio

Настройка и возможности SaluteBot

Чтобы создать свой собственный сценарий и привязать его к чат-боту, зарегистрируйтесь в Studio и войдите в аккаунт. Мы будем использовать инструмент SaluteBot, который помогает создать сценарий в режиме карты. Навыки программирования не нужны, если нет интеграции со сторонними системами.

После этого зарегистрируйтесь в сервисе Jivo, который свяжет робота со сценарием. Для работы потребуется профессиональный аккаунт, первые 14 дней им можно пользоваться бесплатно.

Далее порядок действий будет следующий:

  1. Зайдите в Studio и нажмите «Создать проект».
  2. Выберите «Приложения» — SaluteBot.
  3. Нажмите «Добавить аккаунт» и авторизуйтесь в Jivo.
  4. Придумайте название проекта.
  5. Выберите «Свой сценарий», это бесплатное создание сценария в режиме конструктора.
  6. Далее вы попадёте в конструктор, где сможете собрать нужный сценарий.

Вот какие возможности есть в конструкторе:

  • Отправка пользователю текста (приветствие, ответ на сообщение или на действие).
  • Запрос данных — если нужно уточнить у клиента какую-то информацию, например, имя, телефон, номер заказа.
  • Условие — сценарий должен гибко реагировать на действия клиента, поэтому при выборе того или иного пункта меню бот, в зависимости от настроенного условия, будет реагировать по-разному.
  • Перевод диалога на оператора. Если бот не справляется с вопросом, он автоматически пригласит оператора в чат.
  • Вызов скрипта — для продвинутых сценариев, где подразумевается обмен данными со сторонними системами.

Как добавить в группу

Самый частый сценарий для чат-ботов в группе — это онбординг для новых участников и модерация сообщений на предмет запрещённых тем с вынесением предупреждений.

Чтобы использовать телеграм-бот в группе, просто выберите его как нового участника: созданный нами робот — это обычный отдельный аккаунт в списке участников группы.

  1. Перейдите в настройки группы в Телеграме.
  2. Нажмите на кнопку «Добавить участников».
  3. Найдите бот по системному имени через @имя.
  4. Нажмите на него, а затем — «ОК», чтобы добавить его к телеграм-чату.

После того как робот добавлен в группу, он начнёт отрабатывать сценарий, который был в него заложен в конструкторе.

Таким образом можно использовать не только созданный самостоятельно бот, но и любой уже существующий.

Как добавить в канал

В канале чат-боты используются для отложенных публикаций или как путеводитель по каналу. Чтобы робот мог создавать посты или иначе действовать от имени канала, нужно сделать его администратором. Вот как это сделать:

  1. Зайдите в телеграм-канал, нажмите на три точки и выберите «Управление каналом».
  2. Перейдите в раздел «Администраторы».
  3. В поиске найдите бот по системному имени через @имя.
  4. Добавьте его в качестве администратора и укажите, какие разрешения у него должны быть. Если не выдать нужное разрешение, то некоторые функции могут не работать.

В канал можно добавить собственный бот или выбрать уже существующий.

Для личных чатов

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

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

А ещё работа с ботом напрямую позволяет протестировать его перед использованием в группе или канале — так можно проверить, что все функции работают, как ожидалось.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *