Перейти к содержимому

Как сделать бота телеграмм постоянно включенным

  • автор:

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

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

Отслеживать
задан 18 июл 2022 в 16:34
Marco Polo Marco Polo
17 2 2 золотых знака 2 2 серебряных знака 6 6 бронзовых знаков
Yandex.Cloud, Sbercloud?
18 июл 2022 в 16:45
Запускать на компьютере, который не выключается (например, на сервере)
18 июл 2022 в 16:46
а на каком сервере?(если знаете)
18 июл 2022 в 16:50
На любом какой вам понравится, хостингов слишком много, чтобы советовать какой-то конкретный
18 июл 2022 в 16:51

Бесплатный с ограничением по времени работы, (можно вписаться, если не сильно нагруженный) с хорошей документацией heroku

18 июл 2022 в 18:53

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

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

Отслеживать
5,363 2 2 золотых знака 10 10 серебряных знаков 25 25 бронзовых знаков
ответ дан 18 июл 2022 в 16:59
root_of_the_live root_of_the_live
67 11 11 бронзовых знаков

Я воспользовался сервисом https://www.pythonanywhere.com там все бесплатно и понятно. Регистрируешься, затем добавляешь файлы с ботом в раздел Files и после запускаешь.

Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
ответ дан 17 авг 2022 в 5:05
1 1 1 бронзовый знак

Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.

  • python
  • telegram-bot
  • telegram
  • telebot
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Пишем чат-бот для Telegram на Python, используя webhook и минимум внешних библиотек

Меня зовут Андрей Устьянцев, я ведущий аналитик направления Big Data Лиги Цифровой Экономики, и в этой статье я расскажу, как писал чат‑бот в Telegram на webhook. Если вы знаете, что это такое, и подготовка не вызывает интереса — можете сразу переходить к разделу «Очень кратко». С остальными поделюсь всеми необходимыми шагами.

Почему webhook

Чат‑бот в Telegram может работать в одном из двух режимов.

Один из них называется polling — это когда код, непосредственно реализующий механику бота, опрашивает сервера Telegram с определенной периодичностью («не появилось ли чего новенького»). А если обнаружена активность в чате — реализуется определенная механика взаимодействия (общения).

Большинство материалов в интернете посвящено описанию того, как создавать ботов именно на этой механике, но мне (частное мнение без претензии на истину в последней инстанции) такой подход не очень нравится. Вот почему:

  • не вижу смысла постоянно «дергать» сервера Telegram почем зря;
  • таймаут, установленный для опроса всех чатов, в которых «общается» бот — это суть задержка в коммуникациях с человеком, который «общается» с ботом.

Второй режим работы ботов, webhook, подразумевает, что Telegram сам вызывает обработчик события/сообщения, когда в боте происходит какая‑то активность. Другими словами, код, реализующий механику бота, срабатывает по инициативе человека, который «общается» с ботом. Самый главный плюс от такого режима работы — ответ бота на действие человека происходит мгновенно: человек написал что‑то боту, Telegram тут же вызвал webhook, написанный код сразу «ответил» человеку.

Лирическое отступление: на тему «что лучше — polling или webhook» спорить можно бесконечно долго. Критерий истины: все зависит от решаемой задачи и от user‑story.

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

При чем тут «минимум» внешних библиотек?

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

Ниже я покажу, что можно написать аккуратный, короткий и читаемый код на Python и без использования специализированных библиотек именно для чат‑ботов (особенно работающих в режиме webhook).

Пошаговая инструкция: как и с чего начать

Расскажу, как я писал код на Python, с какими трудностями столкнулся по пути и как их решал.

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

Итак, что необходимо для работы чат-бота в режиме webhook?

Ссылка на официальную документацию Telegam, где описана работа чат‑ботов в режиме webhook: https://core.telegram.org/bots/api#setwebhook

1. Бот. Я не буду здесь подробно расписывать, как зарегистрировать бота — подробных мануалов достаточно и в интернете, и на этом портале.

2. Сервер для размещения кода, обрабатывающего механику бота — тот самый webhook, которого будет вызывать Telegram при активностях в боте.

Важные моменты (требования Telegram к таким серверам):

  • Сервер должен работать круглосуточно. Telegram периодически проверяет служебными запросами наличие и работоспособность webhook.
  • Важно, чтобы на сервере был установлен SSL‑сертификат, обеспечивающий (подтверждающий) безопасное соединение с серверами Telegram.
Ну и где брать такой сервер?

Первое — создать свой сервер:

  • настроить собственный компьютер под управлением Linux в режиме сервера,
  • получить, купить «фирменный» SSL-сертификат или сформировать самостоятельно такой, который Telegram примет как достоверный.

Недостатки такого решения:

  • Необходимы дополнительные компетенции по «поднятию» сервера (обычно это еще и на основе Linux) и созданию SSL-сертификата.

Хотя пошаговых инструкций и статей на эту тему достаточно.

  • Нужен постоянный IP-адрес подключения к интернету.

Если компьютер подключен к интернету из домашней сети — скорее всего, у вас динамический IP-адрес, который точно не подойдет.

  • Надо держать компьютер постоянно включенным в 220В.

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

  • Об этом редко пишут, но на поднятый на скорую руку сервер, на который может «постучаться» Telegram, точно будут «ломиться» разные люди, боты, сети в попытке использовать ваш сервер для своих (не всегда хороших) целей.

А это означает, что мало «поднять» сервер, его еще надо и защитить от потенциальных атак из внешних сетей — суровая дополнительная компетенция, скажу я вам.

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

Поэтому я выбрал второе решение — облачное.

Идеальный вариант — виртуальный хостинг.

  1. Круглосуточно работающий сервер Apach, настроенный для запуска приложений на Python.
  2. Защита от ddos-атак и прочих «пакостей» извне.
  3. Автоматический выпуск качественного SSL-сертификата.
  4. Качественный url webhook, соответствующий требованиям Telegram.
  5. Удобный интерфейс для написания кода на Python прямо из браузера.

Итак, напишем простенького бота, который при любом взаимодействии с ним будет всегда писать в ответ «Ну привет, >»

Очень кратко

  1. Берем виртуальный хостинг. Подробная инструкция здесь.
  2. Регистрируем бота.
  3. Определяем URL-адрес, который сообщим Telegram — что это webhook, соответствующий нашему чат-боту.
  4. Пишем код на Python.
  5. «Сообщаем» Telegram адрес webhook нашего бота.

Важно! Рекомендую не менять местами последовательность действий из пунктов 5 и 4. В чем риск? Если Telegram решит проверить работоспособность адреса webhook, а там еще не отлажен код на Python, неправильный ответ Telegram на запрос может привести к блокировке webhook и бота. Снятие блокировки — отдельная неинтересная история.

Разберем код

import time import json import requests def MainProtokol(s,ts = 'Запись'): dt=time.strftime('%d.%m.%Y %H:%M:')+'00' f=open('log.txt','a') f.write(dt+';'+str(ts)+';'+str(s)+'\n') f.close def application(env, start_response): try: content='' token='5937929205:AAHW3_J3oQTSo1fCncpoK7tu6wD6iyH-kSo' if env['PATH_INFO'].lower() == '/tg_bot': # тут вся механика бота именно этот код будет исполняться, когда Telegram будет вызывать webhook wsgi_string=env['wsgi.input'].read() x=wsgi_string.decode('UTF-8') y=x.replace('\n',' ') try: json_string=json.loads(y) except: raise ValueError('Не удалось распарсить в JSON полученную строку') chat_id=json_string['message']['chat']['id'] from_first_name=json_string['message']['from']['first_name'] # имя отправителя # отправка сообщения в чат msg='Ну, привет, '+str(from_first_name) send_message=requests.get('https://api.telegram.org/bot'+token+'/sendMessage?&chat_id='+str(chat_id)+'&text='+str(msg)) if not send_message: raise ValueError('Не удалось отправить текст в бот') elif env['PATH_INFO'] == '/': # случай, когда кто-то просто из браузера зашел на сайт MainProtokol('кто-то просто зашел на сайт') else: # заглушка для обработки ситуации, когда кто-то методом перебора пытается обратиться к какой-то странице сайта raise ValueError('Вызов неизвестного URL :: '+env['PATH_INFO']) start_response('200 OK', [('Content-Type','text/html')]) return [content.encode('utf-8')] except Exception as S: content=str(S) MainProtokol(content,'Ошибка') start_response('200 OK', [('Content-Type','text/html')]) return [content.encode('utf-8')]

Нам понадобятся следующие библиотеки:

  • time — для работы с функциями даты и времени;
  • JSON — для распарсивания JSON-строки, получаемой от Telegram;
  • requests — для отправки сообщений в бот.

Примечание: в зависимости от настроек виртуальных серверов по умолчанию и инсталляций Python перечисленные библиотеки могут быть уже предустановлены. Если нет — необходимо их установить командой pip install.

Строка 5: Функция MainProtokol написана для логирования происходящего в коде. Задача этой функции — записывать в текстовый файл то, что в обычных условиях выводится на экран компьютера. Поскольку код выполняется по сути на сервере в момент вызова webhook Telegram, на экран ничего вывести нельзя, потому что экрана как такового нет. Так что текстовый файл — это замена вывода на экран ошибок (если они возникнут при выполнении кода), а также всего, что было бы полезно залогировать.

Строка 12: Функция application — основная у Python, которую вызывает сервер Apach при любом обращении к сайту. И при вызове webhook тоже.

Все данные, которые поступают при обращении к сайту (не важно, открывают ли его в браузере при прямом заходе по имени сайта, или происходит вызов webhook), сохраняются в переменной env (тип — словарь) — суть переменные окружения.

Строка 14: Переменная content в текущем коде — это «заглушка», потому что на экран ничего выводиться не должно. Можно в ней разместить HTML-код, который будет отображается в случае захода на сайт из браузера.

Строка 15: Переменная token — в ней хранится токен бота, полученный при его регистрации.

Строка 17: Проверяем, что вызывается именно webhook. В env[‘PATH_INFO’] хранится имя страницы, к которой было обращение. Я решил, что у меня страница для коммуникаций с ботами будет называться ‘tg_bot’. Настоятельно рекомендую придумывать страницу (адрес) webhook, а не сообщать Telegram просто имя домена – это защитит дополнительно ваш сайт от внешних атак.

Примечание: приведение значения переменной окружения к нижнему регистру функцией lower() — это, можно сказать, мой «пунктик»: так я еще больше уверен, что сравнение строк в одинаковом регистре произойдет корректно.

Строка 19: Получаем данные, переданные из Telegram («от бота») — они хранятся в переменной окружения «wsgi.input» в формате WSGI. Для его дальнейшей обработки применяем метод read().

Строки 24–27: Распарсиваем JSON-строку, полученную от бота.

И вот тут меня ждал подводный камень размерами с булыжник. Метод load библиотеки JSON выдавал ошибку «нарушение структуры JSON». Потратив значительное время и логируя в текстовый файл с использованием функции MainProtokol все, что только можно, я обнаружил следующее:

В JSON-строке, передаваемой из Telegram, совершенно непонятно зачем добавляется спецсимвол «\n» (перевод строки). Причем только в одном месте.

Решение проблемы — перед распарсиванием JSON-строки принудительно заменить в ней «мешающий» спецсимвол на пробел: replace(‘\n’,’ ‘).

Ремарка: по-хорошему надо было бы написать кусок кода или функцию, которая «убирает» из JSON-строки все известные спецсимволы. Но я СТОЛЬКО времени потратил на поиск проблемы, что сил на ее полномасштабное устранение со всеми возможными вариантами последствий впредь у меня уже не осталось.

Итого мы получили словарь в переменной json_string, содержащий все, что передал Telegram от бота. В общем-то, блок строк 17-30 — это то место, где необходимо реализовывать логику «общения» бота. Суть — анализировать полученный JSON и в зависимости от полученных данных программировать поведение бота.

Как разбираться с полученным JSON? По сути это объект message, полное описание которого можно найти в официальной документации вместе с описанием всех вложенных объектов типа chat, user и т. д.

Я пошел другим путем: писал в лог получаемые JSON по разным сценариям взаимодействия с ботом (отправка команды боту, отправка текста боту, отправка картинки), потом смотрел их структуру и реализовывал нужную мне логику.

Ремарка: Telegram передает в webhook только те поля, которые имеют значение. Покажу на примере.

(Исходный код – тут log1 с примерами JSON.txt)

Отправка команды «/start»

Отправка простого текста

Как я писал telegram-бота и заливал его на удаленный сервер

Как только на территории РФ вступил в силу запрет на анонимность в мессенджерах, у меня дошли руки написать пост про telegram-бота. По ходу создания бота столкнулся с большим количеством проблем, которые пришлось решать по отдельности, и буквально выцеживать крупинки информации со всего интернета. И вот после нескольких месяцев страданий и мучений (кодинг – не основное моё занятие) я наконец-то закончил с ботом, разобрался со всеми проблемами и готов поведать свою историю Вам.

Первые шаги

Для начала нужно установить telegram на ПК и зарегистрироваться в мессенджере. Найти в поиске @BotFather – это отец всех ботов в telegram, именно он их создаёт. Пишем ему /newbot и отвечаем на два простых вопросов: имя бота и его username. После чего @BotFather поздравит нас с успешным созданием бота и отправит нам его token — 523870826:AAF0O8T-e7riRi8m6qlRz4pBKKdh0OfHKj8.

Внимание: token – единственный идентификационный ключ к боту. Нигде не выкладывайте его, иначе другие люди смогут управлять Вашим ботом. Бот с данным token на момент выкладывания статьи удалён.

Какой язык программирования выбрать для написания бота?

Тут я долго не заморачивался и остановился на Python, так как знаю его достаточно хорошо, да и удобная библиотека тоже присутствует. Я решил использовать PyTelagramBotAPI (на момент написания этой статьи последняя доступная версия 3.5.1).

Перейдём к первому коду.

Импортируем библиотеку PyTelegramBotAPI.

# -*- coding: utf-8 -*- import telebot 
bot = telebot.TeleBot("523870826:AAF0O8T-e7riRi8m6qlRz4pBKKdh0OfHKj8") 

Напишем простую обработку сообщений с помощью декоратора bot.message_handler.

@bot.message_handler(content_types=["text"]) def handle_text(message): if message.text == "Hi": bot.send_message(message.from_user.id, "Hello! I am HabrahabrExampleBot. How can i help you?") elif message.text == "How are you?" or message.text == "How are u?": bot.send_message(message.from_user.id, "I'm fine, thanks. And you?") else: bot.send_message(message.from_user.id, "Sorry, i dont understand you.") 

Поставим бота в режим постоянной обработки информации, приходящей от серверов telegram.

bot.polling(none_stop=True, interval=0) 

В переменной message telegram передаёт словарь (map) такого вида:

, 'date': None, 'chat': < 'type': 'private', 'last_name': None, 'first_name': None, 'username': None, 'id': None, 'title': None, 'all_members_are_administrators': None, 'photo': None, 'description': None, 'invite_link': None, 'pinned_message': None, 'sticker_set_name': None, 'can_set_sticker_set': None>, 'forward_from_chat': None, 'forward_from': None, 'forward_date': None, 'reply_to_message': None, 'edit_date': None, 'author_signature': None, 'text': '/start', 'entities': '[]', 'caption_entities': None, 'audio': None, 'document': None, 'photo': None, 'sticker': None, 'video': None, 'video_note': None, 'voice': None, 'caption': None, 'contact': None, 'location': None, 'venue': None, 'new_chat_member': None, 'new_chat_members': None, 'left_chat_member': None, 'new_chat_title': None, 'new_chat_photo': None, 'delete_chat_photo': None, 'group_chat_created': None, 'supergroup_chat_created': None, 'channel_chat_created': None, 'migrate_to_chat_id': None, 'migrate_from_chat_id': None, 'pinned_message': None, 'invoice': None, 'successful_payment': None> 

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

# Обработчик команд '/start' и '/help'. @bot.message_handler(commands=['start', 'help']) def handle_start_help(message): pass # Обработчик для документов и аудиофайлов @bot.message_handler(content_types=['document', 'audio']) def handle_document_audio(message): pass 

Конечный код.

# -*- coding: utf-8 -*- import telebot bot = telebot.TeleBot("523870826:AAF0O8T-e7riRi8m6qlRz4pBKKdh0OfHKj8") @bot.message_handler(content_types=["text"]) def handle_text(message): if message.text == "Hi": bot.send_message(message.from_user.id, "Hello! I am HabrahabrExampleBot. How can i help you?") elif message.text == "How are you?" or message.text == "How are u?": bot.send_message(message.from_user.id, "I'm fine, thanks. And you?") else: bot.send_message(message.from_user.id, "Sorry, i dont understand you.") bot.polling(none_stop=True, interval=0) # Обработчик команд '/start' и '/help'. @bot.message_handler(commands=['start', 'help']) def handle_start_help(message): pass # Обработчик для документов и аудиофайлов @bot.message_handler(content_types=['document', 'audio']) def handle_document_audio(message): pass bot.polling(none_stop=True, interval=0) 

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

Для сохранения данных о пользователях решил воспользоваться базой данных sqlite3.

import sqlite3 connection = sqlite3.connect("database", check_same_thread = True) cursor = connection.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS Inventory_on (ID INT, 'Primary weapon' TEXT, 'Secondary weapon' TEXT)") cursor.execute("CREATE TABLE IF NOT EXISTS Clans (Name TEXT, Points INT)") cursor.execute("CREATE TABLE IF NOT EXISTS WorkStatus (ID INT, Status INT)") connection.commit() connection.close() 

Параллельные процессы запускал с помощью библиотеки threading. Например: функция расчета битв.

import threading threading.Thread(target=name_of_your_function).start() 

Дальше всё зависит только от Вашей фантазии.

Где запустить Вашего бота?

Свой собственный ПК не хочется оставлять включенным 24/7, да и не практично это. Поэтому я решил воспользоваться бесплатным сервисом heroku, но меня постигла неудача из-за выбранной мною БД. Оказалось, что при каждом перезапуске бота, heroku удаляет все коммиты sqlite3 за последний сеанс без исключений. После чего, я решил купить VDS (Virtual Dedicated Server, виртуальный выделенный сервер) – удаленный ПК, на котором выделяется определенная мощность и память под Вас, и к командной строке которого Вам даётся доступ. Чаще всего операционной системой такой машинки будет linux. Плата небольшая – 400 руб./месяц, так что без особых моральных страданий оплатил VDS на основе Debian GNU/Linux и начал разбираться с тем, как мне включить бота на удалённом сервере.

Как же подключаться к VDS?

Есть разные методы, я решил по SSH-соединению через Putty. Скачиваем Putty через официальный сайт и открываем. Вводим IP-address VDS и нажимаем open.

Должно открыться такое окно, где нужно ввести логин и пароль от сервера.

Все вышеупомянутые данные выдаст компания, у которой Вы приобретёте VDS. Далее VDS – сервер.

Как установить на сервер все необходимые Вам языки программирования и библиотеки?

Тут все просто. Введя эти 5 команд в консоль сервера в данной последовательности, Вы установите на сервер python3, setuptools, pip3 и библиотеку pyTelegramBotAPI.

apt-get update apt-get install python3 apt-get install python3-setuptools apt-get install python3-pip pip3 install pyTelegramBotAPI 

Все дополнительные библиотеки, которые не входят в основной пакет python3, также необходимо установить по принципу.

pip3 install ‘name_of_site_package’ 

Как загрузить файлы с моего ПК на сервер?

Для начала создадим папку, в который будем заливать все необходимые файлы. На сервере пройдем в каталог /usr/local/bin и создадим папку bot.

cd /usr/local/bin mkdir bot 

У меня на ПК установлен windows, соответственно и команды будут для командной строки windows. Для начала необходимо пройти в каталог, где находится putty.exe.

cd /program files/putty 

Далее загружаем bot.py, который находится в каталоге C:\Users\Ilya\PycharmProjects\Bot (нужно подставить Ваш каталог) в каталог на сервере /usr/local/bin/bot.

pscp.exe "C:\Users\Ilya\PycharmProjects\Bot\bot.py" root@123.123.12.12:/usr/local/bin/bot 

Строчку root@123.123.12.12 нужно заменить на строчку вида login@IP_address, соответственно с Вашим логином и IP-адресом (упомянуты выше в разделе «Как же подключиться к VDS?»). Заменяя bot.py на названия других файлов, загрузите все необходимые.

Как скачать файлы с сервера на ПК?

Так же, как и при загрузке файлов на сервер в командной строке в каталог, где лежит putty.exe. И вводим эту команду, чтобы скачать файл database на рабочий стол Вашего ПК.

pscp.exe root@123.123.12.12:/usr/local/bin/bot/database "C:\Users\Ilya\Desktop 

Как запустить бота?

Первый и самый простой вариант – зайти в каталог с исполняемым файлов и прописать python3 bot.py, но тогда при закрытии putty бот будет выключаться.

Второй вариант – запустить бота с помощью screen – модуль, который создаёт параллельные рабочие столы, но тогда бот не будет перезапускаться автоматически в случае падения, а это происходит часто – несколько раз в неделю из-за ночного перезапуска серверов telegram (в 3:00 по МСК).

Третий способ – systemd – cистемный менеджер, демон инициализации других демонов в Linux. Проще говоря, systemd запустит бота и будет перезапускать его в случае падения.

apt-get install systemd 

Создайте файл на Вашем ПК с именем bot.service с таким содержанием:

[Unit] Description=Telegram bot 'Town Wars' After=syslog.target After=network.target [Service] Type=simple User=root WorkingDirectory=/usr/local/bin/bot ExecStart=/usr/bin/python3 /usr/local/bin/bot/bot.py RestartSec=10 Restart=always [Install] WantedBy=multi-user.target 

И загружаем его в нужный каталог:

pscp.exe "C:\Users\Ilya\PycharmProjects\Bot\bot.service" root@123.123.12.12:/etc/systemd/system 

Далее нужно прописать 4 команды в консоли сервера:

systemctl daemon-reload systemctl enable bot systemctl start bot systemctl status bot 

В моём случаи из-за определённых ошибок реализации, а конкретно многопоточности, пришлось переносить функцию для расчёта битв (battle_counter.py) в отдельного демона.

[Unit] Description=Battle counter for telegram bot 'Town Wars' After=syslog.target After=network.target [Service] Type=simple User=root WorkingDirectory=/usr/local/bin/bot ExecStart=/usr/bin/python3 /usr/local/bin/bot/battle_counter.py RestartSec=10 Restart=always [Install] WantedBy=multi-user.target 

После чего должно появится сообщение примерно такого содержания:

Ваш бот запущен и готов к работе!

БЛАГОДАРНОСТИ

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

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

Часто ли вам поступает лавина однотипных вопросов от студентов (об организации дисциплины, баллах, дедлайнах, лабораторных)? Отвечая на них из раза в раз, легко забыть о творческой природе профессии преподавателя и на время превратиться в филиал Студенческого офиса. Если эта проблема вам знакома, то данная заметка для вас – в ней мы расскажем, как бесплатно и без программирования создать чат-бота для вашей дисциплины.

Зачем преподавателю чат-бот?

На этот вопрос мы уже ответили – чтобы снять множество однотипных вопросов. Чат-бот можно сделать как для всего курса, так и для отдельной особенно сложной работы, если вопросы возникают, в основном, только по ней. Другой возможный формат – использовать чат-бот для рассылок, чтобы он автономно отправлял нужную информацию студентам. (Однако в этом случае, возможно, удобнее будет вести обычный Telegram-канал; чат-бот же больше подойдет, когда требуется создать «банк вопросов и ответов», сгруппированный по темам).

Кроме того, чат-боты отлично подойдут для проведения мероприятий или организации учебного процесса на более широком образовательном поле – например, не на дисциплине, а на факультете. ­

Как он работает? На каких платформах?

Мы предлагаем сделать чат-бот для мессенджеров – в первую очередь, Telegram, а также Facebook, Вконтакте, Viber. С WhatsApp все сложно: можно запустить полулегально и дорого (примерно 6500 рублей в месяц) или держать одно из устройств все время включенным и заряжающимся, чтобы чат-бот работал (хотя, возможно, уже появились более простые способы настройки бота для WhatsApp).

Выглядеть бот будет следующим образом: в меню можно вынести кнопки с названиями темы для вопросов; при нажатии на каждую кнопку будут приходить соответствующие вопросы и ответы.

Как создать чат-бот?

Есть много конструкторов для создания ботов, самые известные из них — Aimylogic, Bot Kits, Botsify, Chatfuel, Manybot. Подробнее о них можно почитать здесь.

Мы же рекомендуем создавать бота с помощью конструктора Botmother, потому что:

  • Интерфейс сервиса на русском языке;
  • Первый бот создается бесплатно, нет ограничения по времени использования;
  • Можно создать бота сразу в 5 мессенджерах (Telegram, Facebook, Viber, Вконтакте, Одноклассники);
  • В чате не приходит реклама, white label;
  • Нет ограничения по количеству пользователей;
  • Базовых компонентов достаточно, чтобы сделать хороший банк вопросов и ответов;
  • В бесплатном тарифе можно прикладывать к ответу бота изображения, документы, аудиозаписи;
  • Конструктором относительно просто пользоваться.

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

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