Как научиться писать ботов для Телеграмма

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

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

Чат-бота обычно разрабатывают на Python. Но если у Вас нет нужных навыков, времени или бюджета, можно сделать его самостоятельно, не написав ни строчки кода. О том, как создать чат-бота с помощью конструктора и какие возможности предлагают популярные сервисы, — расскажу в статье.

Лучшие конструкторы чат-ботов в Telegram

Если Вы сталкивались с nocode-платформами вроде Тильды или Unisender, то работа в конструкторе чат-бота не вызовет затруднений. Конструктор — это сервис, построенный по принципу визуального проектирования из элементов, блоков и модулей. В нем также можно редактировать под свои задачи существующие шаблоны.

Телеграм бот на Python / #2 – Базовые концепции создания бота

Я протестировала 8 разных программ и заметила один важный момент. Хотя их основной функционал схож, почти все конструкторы специализированы под определенные задачи и даже бизнес-нишу. Поэтому при выборе варианта из таблицы ниже всегда отталкивайтесь от нужд компании.

настройка тегов в конструкторе bot kits

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

пример общения с ботом

Отзыв пользователя попадает в CRM сервиса. Рассмотрим эту возможность подробнее.

2. Сбор данных и CRM

Одна из важных задач чат-программы — собирать и бережно хранить данные о пользователе, полученные в ходе диалога. Боты умеют запрашивать и записывать во внутреннюю CRM конструктора любые текстовые и контактные данные пользователя, его обращения, ответы на вопросы и заявки.

Например, если в нашу схему в Bot Kits добавить блок сохранения данных, отзыв пользователя попадает в CRM-систему, которая в конструкторе представлена таблицей с настраиваемыми полями.

интерфейс сбора данных в конструкторе бот китс

3. Продажа несложных товаров

Научим бота продавать три вида шариков и отправлять оптовый прайс на email клиента. В админ-панеле BotTap перейдем во вкладку «Диалоги», создадим приветственное сообщение и добавим кнопки меню. В этом конструкторе Вы проектируете по принципу drag and drop: перетаскиваете мышью подходящий блок из палитры справа в нужное место и редактируете.

Пишем TELEGRAM бота с БАЗОЙ ДАННЫХ на Python

Приветствие создаем с помощью блока «Текст», разделы меню — с помощью одноименного блока. Можно выставить задержку сообщений бота.

Еще по теме:  Что делать в Телеграмме если скучно

настройка диалога в чат боте

Чтобы создать товары, переходим на вкладку справа — «CRM интернет-магазина», а затем — в «Товары». Сервис дает возможность заполнить описание продукта, загрузить его изображение и назначить цену.

создание товаров в конструкторе чатбота

Вернемся на страницу «Диалоги», выделим в нашем блоке с меню «Каталог» и добавим из правой палитры блок «Интернет-магазин».

настройка диалогов чат бота телеграмм

Перейдем в чат и потестируем, что получилось. После приветствия бота выберем «Каталог» и добавим в корзину красный шар.

пример переписки с ботом

Можно научить бота запрашивать адрес и телефон покупателя при оформлении заказа — данные попадут в CRM интернет-магазина. В настройках платформы есть опции заказа с оплатой или без. Для теста выбираем последнюю.

галочка указания оплаты в чат-боте тг

Протестируем в чате оформление заказа: введем адрес и телефон. Затем проверим, появился ли заказ в CRM конструктора.

интерфейс заказов чат бота telegramm

4. Прием платежей и интеграция по API

В конструкторах обычно есть возможность интеграции по крайней мере с одним платежным сервисом. Вернемся нашему боту и рассмотрим функцию оплаты на примере того же BotTap.

Заходим в настройки блока «Интернет-магазин» и включаем опцию приема оплаты. Система предлагает выбрать платежный шлюз, который подключается на одноименной вкладке.

приём платежей в диалоге чат-бота

Кроме платежных платформ, некоторые конструкторы чат-ботов позволяют подключиться к другим внешним сервисам по API (например, к Битрикс24, Google Analytics, MailChimp и пр.).

5. Отправка файлов на email пользователя

Также можно научить обота отправлять любые документы (книги, чек-листы и т.д.) на email клиента. В BotTap это можно сделать с помощью блока «Электронная почта». Добавим его в наш конструктор диалога.

отправка файлов на емейл через чат бот тг

Протестируем в чате:

тестирование отправки файла на емейл через чатбот telegram

6. Рассылки

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

Вернемся к нашему боту и научим его спрашивать покупателя, не осталось ли у того каких-нибудь вопросов, через 20 минут после последнего действия пользователя.

Воспользуемся для примера платформой Bot Kits. Выберем в админ-панели вкладку «Рассылка» → «Реакция на сообщение».

вкладка рассылки в конструторе чат бота

В настройках зададим правило — посылать сообщение после последнего действия клиента — и укажем время отправки. Пусть наш бот не только вежливо интересуется, не осталось ли вопросов у покупателя, но и передает ответ менеджеру. Отметим это в настройках рассылки: в Bot Kits для этого нужно указать переменную, в которую будут записываться сообщения пользователей.

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

пример диалога в чат боте telegram

А что, если пользователь не хочет общаться с искусственным интеллектом и настойчиво требует, чтобы в чате ему ответил живой человек?

Кстати. Ищите лучшие сервисы для рассылки в телеграм и отзывы о них на нашем агрегаторе.

7. Переключение диалога на оператора

Функцию приглашать в чат сотрудника поддерживают не все конструкторы, поэтому узнавайте об этой возможности заранее.

Как создать бота для Telegram | Бот отправляющий изображения котов

Боты для телеграмма сейчас весьма популярны, давайте и мы научимся делать своих.

Еще по теме:  Заработок каппером на ставках в Телеграмме

ЯП который мы будем использовать, как всегда Python. Напишем простого бота, который по заданной команде будет присылать нам котиков, а еще добавим кнопку, чтобы не вводить команды каждый раз. Вот рабочий пример (надеюсь к моменту твоего прочтения, я его еще буду хостить).
И итог того, что должно получиться:

Скриншот чата с ботом

Подготовка

Для начала мы будем исходить из того, что Python3 уже установлен и из командной строки прекрасно работает >_ python и >_ pip. Сидим мы из под Linux или Windows неважно.
Для работы с телеграмом будем использовать эту библиотеку, для установки необходима командная строка с правами администратора.
И ввод одной команды.

pip install python-telegram-bot —upgrade

pip install requests

Чат с BotFather

Не забудем и про добавление команды

Чат с BotFather

Пишем код

В принципе, многое уже и так есть в примерах в репозитории и заново ничего придумывать не надо, мы лишь изменим и дополним то, что уже есть.
И так поехали, берем из примеров простого бота echobot2, который уже умеет отвечать на все сообщения и знает команды /help /start. Отвечалку на все сообщения мы изменим, команды тоже немного поменяем и добавим свою /cat, которая собственно и будет постить котиков :3.
Для начала подставляем ранее полученный токен, необходимый для работы.

Код инициализации бота

Смотрим дальше и видим, что все обработчики в боте (команды, текст и тд) находятся в функции main и добавляются как dp.add_handler
Как вы можете заметить, событие использования команды в чате состоит из двух частей: текст команд и функции, которая вызывается при ее использовании.

По тому же принципу добавим свою команду строкой
dp.add_handler(CommandHandler(«cat», sendcat)), где cat — это команда , sendcat — вызываемая функция при получение данной команды.

Код инициализации бота

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

Код отправки сообщения в Telegram

Изменим отправляемый текст на сообщение об ошибке

Код отправки сообщения в Telegram

Также изменим отправляемый текст на /start и /help

Украшательства закончены. Приступим к котикам :).
Котики у нас будут состоять из двух функций. Первую вы уже видели в хендлере — sendcat, она будет отвечать за отправку, но встает вопрос, а что же нам собственно отправлять? Тут мы будем использовать вторую функцию getcat которая будет отвечает за предоставление ссылок на картинки с котиками, брать которые мы будет с сайта thecatapi. Его апи позволяет получать ссылки на случайные картинки с котами, чем мы и воспользуемся.
Подключаем библиотеку requests и пишим простенькую функцию выдающию ссылки на картинки с котиками. Потом просто вызываем ее в sendcat.

Получения ссылки python requests

Проверим что получилос. Запускаем наш скрипт, ищем в телеграмме бота по нику, который вы задали ему при создании и. Котики .

Скриншот чата с ботом

Уже неплохо, но что-то все равно не то. Мы отправляем котов не как картинки, а как ссылки, телеграм конечно их подгружает и показывает, но решение так себе. Исправим же это, открываем документацию по работе с апи телеграма для ботов и ищем метод отправки картинок.

Еще по теме:  Бесплатная инфа по ВК писать в ТГ

Функция отправки изображения в Telegram

Возвращаемся обратно и в функции sendcat заменяем всю строку отправки сообщения на bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat())

Функция отправки сообщения с картинкой

Скриншот чата с ботом

Почти все готово, осталось сделать кнопку в чате, чтобы не вписывать постоянно команду вручную.
Использовать мы будем Inline клавиатуру (прямо в чате которая), она состоит из двух функций: первая отвечает за отрисовку (markup), вторая за обработку нажатий (callback).
Снова идем в примеры, которые даются авторами библиотеки, вытаскиваем вот это и переделываем под себя.
Кое-что доподключаем:

Подключение библиотек inline keyboard

В итоге получается

Код клавиатуры inline в Telegram

Скриншот чата с ботом

Исходный код

import requests from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler import logging # Enable logging logging.basicConfig(format=’%(asctime)s — %(name)s — %(levelname)s — %(message)s’, level=logging.INFO) logger = logging.getLogger(__name__) # Define a few command handlers. These usually take the two arguments bot and # update. Error handlers also receive the raised TelegramError object in error. def start(bot, update): «»»Приветствие»»» update.message.reply_text(‘Привет, я бот, который очень любит котиков :3nНапиши мне /cat и я поделюсь ими с тобой’) def help(bot, update): «»»Сообщение для помощи с командами»»» update.message.reply_text(‘Чтобы получить котика напиши /cat’) def echo(bot, update): «»»На любой текст отвечаем ошибкой»»» update.message.reply_text(«Неизвестная команда :(«) def error(bot, update, error): «»»Log Errors caused by Updates.»»» logger.warning(‘Update «%s» caused error «%s»‘, update, error) def getcat(): »’Получение ссылки на картинку с котиком»’ try: r = requests.get(‘http://thecatapi.com/api/images/get?format=src’) url = r.url except: url = get_cat() print(‘Error with cat parsing’) pass return url def sendcat(bot, update): «»»Отправка котиков»»» bot.sendPhoto(chat_id=update.message.chat_id, photo=getcat(), reply_markup=draw_button()) def draw_button(): keys =[[InlineKeyboardButton(‘?Еще котика. ‘, callback_data=’1’)]] return InlineKeyboardMarkup(inline_keyboard=keys) def get_callback_from_button(bot, update): query = update.callback_query username = update.effective_user.username chat_id = query.message.chat.id message_id = query.message.message_id if int(query.data) == 1: bot.sendPhoto(photo=getcat(), chat_id=chat_id, message_id=message_id, reply_markup=draw_button()) def main(): «»»Start the bot.»»» # Create the EventHandler and pass it your bot’s token. updater = Updater(«СЮДА ВАШ ТОКЕН») # Get the dispatcher to register handlers dp = updater.dispatcher dp.add_handler(CallbackQueryHandler(get_callback_from_button)) dp.add_handler(CommandHandler(«start», start)) dp.add_handler(CommandHandler(«help», help)) dp.add_handler(CommandHandler(«cat», sendcat)) # on noncommand i.e message — echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, echo)) # log all errors dp.add_error_handler(error) # Start the Bot updater.start_polling() # Run the bot until you press Ctrl-C or the process receives SIGINT, # SIGTERM or SIGABRT. This should be used most of the time, since # start_polling() is non-blocking and will stop the bot gracefully. updater.idle() if __name__ == ‘__main__’: main()

F.A.Q

  • Q: Т.к бот каждый раз запрашивает картинку, а потом еще и загружает ее в мессенджер, уходит масса времени. Как ускорить выдачу ответов?
  • A: Решение — использовать сервера Telegram, как кеш. Сохраняйте при отправке фото их media_id (куда нибудь в бд), чтобы потом можно было быстренько его оттуда вытянуть и отправить.
  • Q: А как сделать ребут, админку, оформить тексты т.д ?
  • A: Здесь есть отличные сниппеты
  • Q: Как осуществить . ?
  • A: Документация Telegram bot api, Вики библиотеки

Источник: liberbear.com

Рейтинг
( Пока оценок нет )
Загрузка ...