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

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

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

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

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

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

Как создать тесты онлайн: делаем тест «Какой ты…» через чат-бота

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Еще по теме:  Интересные боты в Telegram для бесед игр

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

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

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

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

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

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

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

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

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

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

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

6. Рассылки

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

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

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

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

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

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

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

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

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

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

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

Как написать Telegram бота: практическое руководство

6 Апрель 2016 , Python, 454296 просмотров, How To Create a Telegram Bot Using Python

В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных «фишек» Telegram является его якобы защищённость — по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.

В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы «запилим» полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории.

Документация, описывающая процесс взаимодействия с ботами Telegram находится тут. Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов — telepot. Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.

Как создать Telegram бота?

Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:

  • Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно тут
  • Добавляем к себе в контакт-лист бота с именем BotFather
  • Запускаем процедуру «общения» с ботом нажатием кнопки Start. Далее перед нами предстанет список команд точно как на скриншоте.
  • Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot. Например, DjangoBot или Django_bot.
Еще по теме:  Как завести новый аккаунт в Телеграмме

Telegram bot

  • Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю 🙂

Python Planet бот

После создания бота, обратите внимание на строку с текстом:

Use this token to access the HTTP API:

За которой следует т.н. token по которому мы будем манипулировать нашим ботом. Помимо функции создания telegram бота, BotFather также имеет ряд других возможностей:

  • Присвоить боту описание
  • Установить аватар
  • Поменять token

и так далее. Полное описание доступных команд можно увидеть на первом скриншоте.

Приступаем к кодированию

Как я ранее уже упоминал, мы будем писать веб-приложение на Django. Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.

  • Использование вызова API метода getUpdates
  • Установка Webhook

Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook. Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить валидный бесплатный SSL сертификат от Let’s Encrypt.

Подробнее о getUpdates и setWebhook можно почитать соответственно здесь и тут.

Итак, вернёмся к python библиотеке для работы с Telegram — telepot. На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:

pip install telepot

Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:

import telepot token = ‘123456’ TelegramBot = telepot.Bot(token) print TelegramBot.getMe()

Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:

Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.

Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start

Telegram Bot

TelegramBot.getUpdates() [, u’message_id’: 1, u’chat’: >, u’update_id’: 649179764>]

Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update. Внутри Update находится объект Message. Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.

Еще по теме:  Значение знаков в премиум Телеграм

TelegramBot.getUpdates(649179764+1) [, u’message_id’: 13, u’chat’: >, u’update_id’: 649179765>]

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

Простая функция парсинга RSS фида Planet Python выглядит вот так:

# -*- coding: utf8 -*- from xml.etree import cElementTree import requests def parse_planetpy_rss(): «»»Parses first 10 items from http://planetpython.org/rss20.xml «»» response = requests.get(‘http://planetpython.org/rss20.xml’) parsed_xml = cElementTree.fromstring(response.content) items = [] for node in parsed_xml.iter(): if node.tag == ‘item’: item = <> for item_node in list(node): if item_node.tag == ‘title’: item[‘title’] = item_node.text if item_node.tag == ‘link’: item[‘link’] = item_node.text items.append(item) return items[:10]

Здесь я использую python библиотеку requests для работы с HTTP в самом простейшем варианте без обработки ошибок. Django «вьюшка» выглядит следующим образом:

CommandReceiveView ждёт POST запрос на себя, парсит его и отвечает исходя из заданной команды. Полноценное Django приложение можно найти по этой ссылке. Стоит отметить в коде использование ещё одного API вызова — sendMessage. Этот метод отправляет сообщение заданному пользователю, используя при этом chat_id и сам текст сообщения. Chat_id — это уникальный идентификатор чата между пользователем и ботом (его идентификатор есть в ответе на запрос getUpdates). У Telegram ботов есть одно ограничение, они не могут посылать сообщения пользователям, которые предварительно не инициировали общение с ним. По-видимому это сделано дабы избежать массового создания спам-ботов.

Я предполагаю, что вы уже клонировали мой репозиторий, настроили окружение и установили все необходимые зависимости: Django, requests, telepot. Если же вы не знаете как это сделать, то совсем скоро я напишу цикл статей о разработке веб-приложений на Python, включая разбор экосистемы: разработка, настройка, деплой. Если вам это интересно, то отпишитесь, пожалуйста, в комментариях к этой статье. Хочется получить обратную связь 🙂

Итак, веб-приложение на Django запущено. Как же начать тестировать бота? А всё очень просто — необходимо симулировать действия Telegram сервиса. Для этого нам понадобится HTTP клиент и тело запроса. В качестве HTTP клиента я часто использую Chrome плагин под названием Postman, а тело запроса мы возьмём напрямую из данных, полученных с помощью API вызова getUpdates.

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

http://127.0.0.1:8000/planet/b. BOT_TOKEN/

где BOT_TOKEN — это токен нашего бота. Смотрим скриншот:

Postman REST Client

telegram-bot-postman

А давайте-ка отправим команду feed для получения списка новостей из Planet Python:

Postman и TelegramPostman и Telegram

На скриншотах видно, что бот адекватно отреагировал на нашу команду вывести список последних 10 постов.

Следующим шагом является деплой нашего Django приложения на удалённый хост и последующий вызов метода setWebhook для передачи URL на который будет посылаться POST запрос от сервиса Telegram каждый раз при поступлении команд боту от пользователей. Об этом мы поговорим в следующей заметке.

Интересные записи:

  • Почему Python?
  • Обзор Python 3.9
  • Работа с MySQL в Python
  • Введение в logging на Python
  • Что нового появилось в Django Channels?
  • Celery: начинаем правильно
  • Руководство по работе с HTTP в Python. Библиотека requests
  • Django Channels: работа с WebSocket и не только
  • Pyenv: удобный менеджер версий python
  • FastAPI, asyncio и multiprocessing
  • Разворачиваем Django приложение в production на примере Telegram бота
  • Работа с PostgreSQL в Python
  • Авторизация через Telegram в Django и Python
  • Введение в pandas: анализ данных на Python
  • Python-RQ: очередь задач на базе Redis
  • Django, RQ и FakeRedis
  • Обзор Python 3.8
  • Итоги первой встречи Python программистов в Алматы
  • Интеграция Trix editor в Django
  • Участие в подкасте TalkPython
  • Строим Data Pipeline на Python и Luigi
  • Видео презентации ETL на Python

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

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