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

Как делать сайты с помощью телеграм бота

  • автор:

Как написать Телеграм-бота на JavaScript

Сегодня будем делать бота — это отличное (и быстрое) занятие, которое развивает уставший мозг и даёт возможность отправить друзьям ссылочку со словами «Смотри, это моё».

Для работы понадобятся

  • Редактор кода, чтобы писать код. Если не знаете, какой выбрать — мы уже рассказывали. Если не умеете писать код, то вот инструкция, как его написать и запустить.
  • Node.js любой версии, выше 0.12. Нужно, чтобы библиотека для ботов заработала. Как установить Node.js.
  • Консоль. Или встроенный в систему вариант, или какой-нибудь другой.
  • VPN. Возможно, но не факт, потому что Телеграм работает не везде.

Шаг 1. Регистрируем бота

Находим в поиске Телеграма бота @botFather — это главный инструмент для создания ботов. Набираем в нём /newbot .

Придумываем название и имя боту. Название — то, как он будет подписан в списке контактов. Имя — строка, по которой его можно будет найти. Обратите внимание, что имя должно оканчиваться на bot . В ответ мы получим токен — длинную последовательность символов, которая пригодится нам в будущем. Мы назвали бота echoKeksBot , но вам придётся придумать другое название, потому что это уже занято. Извините.

Шаг 2. Создаём проект

Создаем папку в любом месте и открываем её в консоли. Там пишем npm init -y — эта команда создаст файл package.json , который выглядит примерно так:

Теперь установим node-telegram-bot-api — это библиотека для создания телеграм-ботов на Node.js. Введём команду:

npm install --save --save-exact node-telegram-bot-api 

Создадим пустой файл index.js и напишем там самого простого бота, который будет отвечать на любое сообщение:

bot.on('message', (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, 'Привет, Друг!'); >); 

Шаг 3. Запускаем бота

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

Как видим, бот успешно отвечает. Но бот-повторяха — не интересно, усложним задачу. Пусть бот присылает нам картинку.

Шаг 4. Отсылаем картинку

Добавим картинку с Кексом в папку с проектом. Для отправки изображения используем метод .sendPhoto() — передадим в него id чата и путь до картинки. Получится такой код:

bot.on('message', (msg) => < const chatId = msg.chat.id; bot.sendPhoto(chatId, 'keks.png'); >); 

Запускаем бота, проверяем, работает:

Шаг 5. Добавим клавиатуру. И пёсика

Добавим фотографию милого пёсика в корень проекта. Теперь там две картинки.

Создадим конфигурацию для клавиатуры в боте, пусть у нас будет 3 кнопки: «Хочу кота», «Хочу пёсика» и «Пойти учиться».

// Конфиг клавиатуры const keyboard = [ [ < text: 'Хочу кота', // текст на кнопке callback_data: 'moreKeks' // данные для обработчика событий >], [ < text: 'Хочу песика', callback_data: 'morePes' >], [ < text: 'Хочу проходить курсы', url: 'https://htmlacademy.ru/courses' //внешняя ссылка >] ]; 

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

Чтобы отличить первые 2 кнопки, воспользуемся полем callback_data , где будем передавать тип кнопки. Для обработки нажатий добавим слушателя на событие callback_query , и в зависимости от значения query.data отправим нужную картинку к пользователю.

// Обработчик нажатий на клавиатуру bot.on('callback_query', (query) => < const chatId = query.message.chat.id; let img = ''; if (query.data === 'moreKeks') < // если кот img = 'keks.png'; >if (query.data === 'morePes') < // если пёс img = 'pes.png'; >if (img) < bot.sendPhoto(chatId, img, < // прикрутим клаву reply_markup: < inline_keyboard: keyboard >>); > else < bot.sendMessage(chatId, 'Непонятно, давай попробуем ещё раз?', < // прикрутим клаву reply_markup: < inline_keyboard: keyboard >>); > >); 

Не забудем про возможные ошибки и предложим пользователю попробовать снова, если он ввёл что-то не то. Перезапустим бота и проверим — всё работает. Главное — не закрывать консоль, иначе бот перестанет отвечать.

Полный файл с кодом: index.js.

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

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Простой Telegram бот для поиска по сайту на WordPress без знаний программирования

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

Что получим?

Что мы получим? Получим бота ( пример бота), который умеет искать по сайту и присылает пользователю ссылку на статью или набор ссылок на статьи. В названии я написал WordPress, но по идее любой сайт. который поддерживает RestApi. Показывать буду на примере своего сайта, для которого это делал. Итак есть контентный сайт gdesnimali.ru, сайт на wordpress и каждый пост там — это описание локаций того или иного фильма. Искать мы будем только по названию фильма, а оно указано в заголовке, поэтому интересует поиск только по заголовку. Мы ожидаем, что в бота человек напишет название фильма, а в ответ хочет получить все что найдет поисковик на сайте.

Создание бота в телеграм

Идем по ссылке t.me/BotFather — это чат бот для создания ботов. Там пишем /newbot, он попросит выбрать нас название для своего бота, обязательное требование, чтобы название заканчивалось на _bot, поэтому у меня gdesnimali_bot

Если название подошло, то нам покажется сообщение где будет токен, он то нам и нужен. Выглядит это примерно так:

Use this token to access the HTTP API:
5133698220:AAHqiEwVzn0lH2nrwqntlHNmYeQecGL0x

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

Но не спешите уходить из бота, он знает еще две нужные нам команды:

/setuserpic — отправляйте команду и следом картинуку, которая будет аватаркой бота.

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

Адаптируем код

Итак, я не программист, поэтому кто-то может уйти в депрессию от моего кода, но главное — он работает. Код просто копируем и правим пару мест

import telebot import requests from telebot import types bot = telebot.TeleBot('ВОТ ТУТ НУЖНО ВСТАВИТЬ КОД ОТ ТЕЛЕГРАМ') bot.remove_webhook() @bot.message_handler(commands=['start']) def start_message(message): user_id = message.from_user.id pressStartButton = 'Кнопка старт' markup = types.ReplyKeyboardMarkup(resize_keyboard=True) filmSearchButton = types.KeyboardButton('ВОТ ТУТ КНОПКА ДЛЯ СТАРТА ПОИСКА') markup.add (filmSearchButton) bot.send_message(message.chat.id, "ВОТ ТУТ ПРИВЕТСТВЕННОЕ СООБЩЕНИЕ БОТА ПОСЛЕ КНОПКИ СТАРТ", parse_mode='html', reply_markup=markup) @bot.message_handler(content_types=['text']) def lalala (message): if message.chat.type == 'private': if message.text == 'ВОТ ТУТ КНОПКА ДЛЯ СТАРТА ПОИСКА': bot.send_message(message.chat.id, 'ВОТ ТУТ ОПИСАНИЕ ЧТО МОЖНО ИСКАТЬ') else: user_id = message.from_user.id searchQuery = message.text url = f"ВОТ ТУТ АДРЕС ВАШЕГО САЙТА wp-json/wp/v2/posts?search=" responce = requests.get(url) if not responce.json(): bot.send_message(message.chat.id, 'Я ничего не нашел по вашему запросу') for SearchResult in responce.json(): title = SearchResult['title'] completeMessage = f" " bot.send_message(message.chat.id, completeMessage) bot.polling(none_stop=True)

Что нужно в нем поменять?

Где надпись «ВОТ ТУТ НУЖНО ВСТАВИТЬ КОД ОТ ТЕЛЕГРАМ» — нужно вставить код который вы получили в телеграм при создании бота.

Где надпись «ВОТ ТУТ АДРЕС ВАШЕГО САЙТА» — должно получиться вот так, только вначале ваш сайт — f»https://gdesnimali.ru/wp-json/wp/v2/posts?search=»

Где надпись «ВОТ ТУТ КНОПКА ДЛЯ СТАРТА ПОИСКА» (Обратите внимание она в коде два раза, оба раза должно быть одинаково до символа» — нужно написать просто на русском запрос на поиск, у меня написано «Искать фильм» — это кнопка которая будет снизу в меню, при ее нажатии он выведет сообщение «ВОТ ТУТ ОПИСАНИЕ, ЧТО МОЖНО ИСКАТЬ» — у меня это «Введите название фильма».

Готово, теперь вам нужно просто сохранить этот код в файле питон, т.е. он должен заканчиваться на .py, например bot.py проще всего код вставить в обычный блокнот, там поправить и потом нажать «сохранить как» и сразу опубликовать с нужным форматом .py

Запуск на сервере

Бот должен где-то работать и он не может это делать на серверах телеграм.

Для своего бота я использую VPS сервер своего сайта и это было отдельным приключением все там настроить и установить. Вам я предлагаю использовать, как минимум на первое время хостинг pythoneverywhere. Он бесплатный для одного проекта. И есть отличная инструкция как запустить там бота. Я не буду ее переписывать, просто используйте код полуенный выше вместо кода в инструкции (Например эта: ссылка на инструкцию).

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

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

Зачем нужен бот в Telegram

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

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

Создайте своего чат-бота в Telegram
Простая настройка чат-бота в личном кабинете Цифровой витрины
Попробовать

Как создать telegram-бот

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

Но, чтобы бот заработал в Телеграме, нужно настроить интеграцию нескольких систем: личный кабинет Цифровой витрины, Telegram и Jivo.

Поэтому пошаговая инструкция выглядит так:

  1. Создание бота в Telegram.
  2. Регистрация на платформе Jivo.
  3. Интеграция Jivo с Telegram.
  4. Создание бота в личном кабинете Цифровой витрины.
  5. Разработка сценария бота в конструкторе.
  6. Тестирование и отладка бота.

Разберём каждый этап подробно.

Создание бота в Телеграме

Создать самостоятельно чат-бот в Telegram можно бесплатно за несколько шагов:

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

Название может быть любым: нестрашно, если оно будет дублировать уже существующие. Но системное имя обязательно должно быть уникальным. Если имя уже занято, вы увидите подсказку: «Sorry, this username is already taken. Please try something different».

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

Токен чат-бота Telegram

Регистрация в Jivo

Чтобы разработать чат в Телеграме на платформе личного кабинета Цифровой витрины, понадобится учётная запись в сервисе Jivo. При регистрации укажите email и задайте пароль. В поле «Адрес сайта» можно ввести любые данные.

Интеграция Jivo с Telegram

Авторизуйтесь на платформе Jivo, в боковом меню откройте раздел «Управление», блок «Каналы связи».

Управление каналами в Jivo

В списке сервисов найдите Telegram и нажмите кнопку «Добавить», далее — «Подключить Telegram». В открывшемся окне введите токен, который вы получили при создании бота.

Синхронизация Telegram и Jivo

Если токен указан верно, появится всплывающее сообщение о том, что бот успешно подключён. В меню «Уведомления» настройте, куда вы хотите получать все диалоги и на какой email отправить сообщение, если нет свободных операторов.

Создание бота в личном кабинете Цифровой витрины

В предыдущих шагах мы настроили площадку для диалогов и сервис Jivo для интеграции чата и конструктора. Далее предстоит разработка сценария, то есть набора команд и логики, по которой бот будет общаться с пользователями.

Сценарий мы будем создавать в личном кабинете Цифровой витрины: пройдите бесплатную регистрацию и войдите в аккаунт.

Далее следуйте инструкции:

  1. Нажмите «Создать проект» на главном экране.
  2. Если хотите заказать разработку бота, в списке инструментов выберите «SaluteBot Под ключ» и отправьте онлайн-заявку.
  3. Если будете создавать бот сами, то в списке инструментов выберите «SaluteBot Конструктор». Дальше говорим именно о самостоятельном конструировании SaluteBot.
  4. Выберите готовый шаблон или «Новый проект».
  5. Придумайте название и нажмите кнопку «Создать проект».
  6. Введите название бота.
  7. Выберите язык.
  8. Выберите тип сценария.
  9. Нажмите кнопку «Добавить аккаунт Jivo» и укажите данные для авторизации в сервисе Jivo.
  10. Перейдите в личный кабинет Jivo, чтобы связать его с личным кабинетом Цифровой витрины.

В меню выбора типа сценария доступно несколько вариантов:

Сценарий бота SaluteBot

  • Готовый сценарий — включает базовую сборку экранов и команд с ответами на частые запросы. Можете использовать сценарий без изменений или подстроить его под логику вашего бизнеса: добавить и убрать любые блоки.
  • Graph — это разработка сценария в конструкторе.
  • Code — написание сценария с помощью кода, подходит для разработчиков. Важно помнить о том, что в Code можно собрать чат-бот только для сайта, не для мессенджеров, поэтому в данной статье мы этот тип не рассматриваем.

Разберём тип сценария Graph: с его помощью вы сможете сами составить схему работы чат-бота в конструкторе.

Разработка сценария

Перейти к редактированию сценария можно со страницы базовых настроек, которую мы рассмотрели на предыдущем этапе. В блоке «Сценарий бота» нажмите кнопку со всплывающей подсказкой «Перейти к проекту».

Переход в конструктор SaluteBot

Конструктор чат-ботов

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

Сценарий состоит из блоков со следующими возможностями:

  • Написание текстового ответа. Это самый простой блок, когда пользователю должно прийти в ответ сообщение с готовым текстом. Ответы бота можно разнообразить: если указать в блоке несколько фраз, то ответ будет выбираться случайным образом.
  • Запрос данных. Пользователь должен отправить в сообщении данные определённого формата. Бот определяет, является ли значение телефоном, электронной почтой или числом.
  • Проверка условия. В сценарий можно добавить разветвление, чтобы строить диалог исходя из ответа клиента.
  • Перевод диалога на сотрудника. Когда бот собрал все нужные сведения или затрудняется с ответом, он может перевести диалог на оператора.
  • Вызов произвольного кода. Данные из чата можно сохранять и обрабатывать в сторонних системах. Пример: клиент указывает в сообщении номер заказа, который отправляется в CRM-систему, а затем в телеграм-диалог возвращаются детали по этому заказу. Другой пример — обновление персональных данных заказчика: из чата они передаются в CRM-систему.

Если вы хотите быстро начать работу с ботом, на экране «Создание проекта SaluteBot Конструктор» выберите готовый отраслевой шаблон. Например, для e-commerce подходит шаблон «Приём и оформление онлайн-заказов».

Шаблоны SaluteBot

Шаблон включает блоки про выбор товара, оформление покупки прямо в телеграм-канале, уточнение статуса заказа, перевод на оператора:

Шаблон чат-бота в конструкторе

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

Проверка работоспособности

После настройки сценария нажмите кнопки «Сохранить» и «Собрать» в нижнем правом углу.

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

Дождитесь сообщения об успешной сборке, а затем проверьте, заработал ли ваш телеграм-бот. Для этого перейдите в диалог, нажмите кнопку «Start» или введите команду /start. Напишите какое-нибудь сообщение и убедитесь, что бот отвечает по той схеме, которую вы составили. Если получаете некорректные ответы или забыли добавить какую-то пользовательскую ситуацию, скорректируйте сценарий в конструкторе.

Телеграм-боты для бизнеса

Посмотрим, зачем нужны боты интернет-магазинам, инфобизнесу, рекламным агентствам и представителям других сфер.

Инфобизнес

Чат-бот может взять на себя все важные этапы работы с пользователем, а именно:

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

Event-индустрия

В telegram-канал можно перенести рутинные задачи:

  • помощь в бронировании мест на мероприятие;
  • предоставление информации об адресе, спикерах;
  • показ актуального расписания мероприятия;
  • сбор обратной связи.

Размещаем бота для Telegram: от выбора хостинга до запуска

Размещаем бота для Telegram

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

Выбираем хостинг для телеграм-бота

Для начала быстро разберемся с юридической составляющей. В России власти заблокировали лишь серверы и сам сайт Телеграма (UPD: уже разблокировали, поражение в этой войне было неминуемо). Использование мессенджера фактически не запрещено. Но не любой российский сервер будет исправно работать с ботами для этого мессенджера. Так что перед арендой лучше уточнить у техподдержки, подойдет ли их хостинг для телеграм-бота.

У хостинга для чат-бота должна быть поддержка нескольких языков программирования. Например, хостинг для телеграм-бота на Python должен поддерживать этот язык. Аналогично, написанный на NodeJS бот должен быть развернут на сервере, в который можно подгрузить язык NodeJS.

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

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

Для развертывания бота для Telegram лучше всего подходит VDS/VPS. Он не требует наличия домена в обязательном порядке, и к нему можно будет обратиться по выделенному IP-адресу, что удобно при развертывании бота. К тому же такие серверы лучше поддерживают увеличение масштабов проекта, так что при увеличении потока посетителей вам не придется переходить на другой сервер — достаточно будет просто сменить тариф или его настройки.

Запустите свой VDS-сервер в Timeweb

От 169 рублей в месяц

Выбираем тариф

О тарифах хостингов для бота Telegram стоит поговорить отдельно. Есть целый класс бесплатных хостингов — сюда входит, например, Heroku. Они могут оказаться полезными при тестировании бота — расположите свой чат-бот на Heroku и проверьте работоспособность всех функций, прежде чем арендовать хостинг и выкладывать свое творение. Но учтите, что работоспособность на этом хостинге будет непостоянной — обычно чат-боты работают по 30 секунд, а затем отключаются на неопределенное время. Так что для полноценного развертывания лучше выбрать другой хостинг.

Выбор тарифа обычно обуславливается потоком клиентов, но не сложностью бота. Для развертывания как простенького, так и нейросетевого бота вам не потребуется много дискового пространства. Нет нужды и в больших вычислительных мощностях — большинству ботов более чем достаточно 512 МБ оперативной памяти. Поэтому можно выбирать самые недорогие тарифы.

Ключевое требование к хостингу — стабильность подключения, поэтому от shared-хостингов для телеграм-бота лучше сразу отказаться. А вот VPS/VDS сможет обеспечить надежное подключение. Предпочтительная ОС для сервера — Ubuntu, поскольку большинство модулей для языков программирования пишутся именно под нее. Тарифы на такие виртуальные серверы начинаются от 169 рублей в месяц.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Настраиваем сервер для Telegram-бота

Рассмотрим настройку сервера на примере размещения бота, написанного на Python, который будет автоматически присылать ответы на различные команды.

После аренды VPS нам нужно подключиться к нему по протоколу SSH через специальный клиент (например, Termius), используя данные из личного кабинета на хостинге для телеграм-бота. Вам потребуются Hostname, Login, Password, Port. Вводим их в поля нового подключения. Вот как это будет выглядеть в Termius:

Termius SSH

Сохраняем подключение, возвращаемся на главный экран программы (здесь появляется наше новое подключение) и нажимаем на название сервера, которое мы вводили до этого:

Подключение к серверу

Готово, мы попали в консоль сервера:

Консоль сервера

Отсюда мы сможем управлять сервером, подгружать нужные нам модули и библиотеки. Этим и займемся. Чтобы бот работал, серверу потребуется модуль языка Python. Мы рассматриваем бота, написанного на третьей версии языка, поэтому нам нужно установить python3. Для этого введем в консоль сервера следующие команды:

sudo apt —reinstall install python3 -y sudo apt —reinstall install python3-pip -y

Не забудем и про библиотеки. На «Питоне» ботов для Telegram обычно пишут с помощью библиотеки TelegramBotAPI. Для ее установки введем команду:

pip3 install pyTelegramBotAPI

Теперь нам нужно установить удобный менеджер процессов PM2 и язык программирования NodeJS с менеджером пакетов npm для его работы:

sudo apt install nodejs sudo apt install npm npm install pm2 -g

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

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