Как создать бота для телеграм

Содержание:

Можно ли заработать на ботах

Не только можно, но и нужно! В Телеграмм есть несколько способов для этого.

Вот только некоторые из них:

  1. Создание ботов под заказ.
  2. Участие в конкурсе для создателей программ-роботов от Павла Дурова.

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

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

Павел Дуров периодически проводит конкурс среди создателей ботов на получение грантов. Призовой фонд — 1 млн $. Сумма каждого гранта не менее 25 тыс. дол. Сведения о событии размещаются в паблике мессенеджерв в ВКонтакте.

Основные требования к вновь создаваемым ботам:

  • быстродействие;
  • полезность;
  • функционирование на базе Телеграмм;
  • работа в inline-режиме.

Выбирайте наиболее подходящий для вас способ и начинайте зарабатывать!

Работа с контентом

Controller Bot

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

LikeBot

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

VoteBot

Помогает проводить опросы среди подписчиков каналов, пользователей публичных и закрытых чатов. Опрос можно сделать как открытым, так и анонимным. А варианты оформить текстом или в виде эмодзи.

VoterBiBot

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

Примеры чат-ботов в Telegram

Я собрала реальные примеры применения чат-ботов в Telegram разными видами бизнеса.

Чат-бот шоумена и ведущего мероприятий

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

Бот в Телеграме шоумена и ведущего мероприятий

Чат-бот психолога

Психолог, автор программ по подготовке к родам, Юлия Романенко, создала онлайн-помощника Джулию. С помощью нее можно узнать о распространенных страхах будущих мам, стоимость курсов, выбрать подходящий для себя и записаться на него.

Бот дает много полезной информации уже на старте общения, чем и располагает к себе.

Чат-бот Джулия — онлайн-помощник психолога

Рассылка обновлений от новостного портала

Новостной сайт «Коммерсантъ» использует бота в Телеграме, чтобы подписать читателей на рассылку новостей. При этом вы можете выбрать, как часто и в какое время получать обновления. Если нужно найти новости на сайте прямо сейчас, просто введите ключевое слово и бот предложит вам подборку новостей на эту тему.

Чат-бот издания «Коммерсантъ»

Чат-бот страховой компании

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

Чат-бот страховой компании

Откройте для себя чат-бота

Выстраивайте автоворонки продаж и отвечайте на вопросы пользователей с помощью чат-бота в Facebook, VK и Telegram.

Каналы

Каналы по программированию и разработке ПО

  • For Web — Канал новостей для веб-разработчиков
  • Python_beginners — Канал про Python для новичков
  • Регулярные короткие заметки по C# и .NET — Заметки по C# и .NET (>800)
  • pro.elixir_news — Новости из мира Elixir
  • Frontend Raccoon — Новости сообщества Frontend Raccoon
  • Android Дичь — Тщательно отобранные статьи и доклады по Android-разработке и смежным темам
  • Annode News — Подборка самых интересных статей/новостей/уроков
  • TM Feed — Лента публикаций с Хабра и Гиктаймс
  • Tproger Channel — Лента новостей от сообщества «Типичный программист»
  • Spalmalo Tech Talk — Спалмало (spalmalo.com) находит и шарит с вами всякие полезности
  • ∏ρ؃uñçτØρ Øπτµç∑ — Авторский канал о программировании (Пэйперы, видео, интересные репозитории)
  • Microsoft Developer — Microsoft для разработчиков, системных администраторов и всех, кто интересуется новыми технологиями
  • Technologique — Технологии программирования и разработки
  • PhpFlow — Все о PHP: новости, статьи, интересные фишки
  • javaswag — дайджест интересных и полезных статей из мира Java.
  • Evil Martians — Новости от Злых Марсиан

Новости

  • Веб-стандарты — Новости фронтенда от «Веб-стандартов»
  • opennet news — Новости opennet
  • DevOps news — Новости DevOps
  • DevOps Deflope News — Новостной канал DevOps
  • Geeks — Статьи и новости. Для гиков и от гиков.
  • 40Pk — Новости и статьи про кодинг, технологии и науку.
  • Fedora Project News — Официальные новости Fedora. English
  • pro.JVM — Новости сообщества JVM
  • SPbLUG news — Канал новостей SPbLUG
  • L’homme qui pleure — Персональный канал Александра Чистякова
  • nag.ru news — Новости от nag.ru
  • DTP — Канал новостей о паблишинге, полиграфии, препресс, вёрстка, дизайн
  • Addmeto — Канал Григория Бакунова (Bobuk), новости из мира ИТ и не только
  • LSA — Информационный канал о сетевых технологиях и NetDevOps (новости, книги, презентации)
  • Apache Hadoop stack — Новости сообщества Apache Hadoop
  • Tehnojam.pro — Лента публикаций сайта ТехноДжем.
  • QUANTUM QUINTUM — Канал Константина Кичинского (Technical Evangelism Lead в Microsoft), короткие заметки про Microsoft и технологии.

Каналы информации по Информационной безопасности

  • ИБач — Канал об Информационной Безопасности
  • Hacker news Ru — Новости информационной безопасности
  • Hacker News En — Hacker News (english)
  • IT Security Alerts — Оповещение о крупных уязвимостях в софте и сервисах
  • Информация опасносте — New! Информация опасносте

Каналы по бизнесу и стартапам

  • TNN Public — Предприниматели, экономика, криптовалюты, стартапы, черные рынки, тренды. Опережают русскоязычные СМИ.
  • Тёмная сторона — Канал по бизнесу «Темная сторона»
  • Мини-бизнес по-русски — Мини-бизнес по-русски
  • PRO Стартапы и бизнес — Новости про стартапы и бизнес

Библиотеки и базы данных

  • Бизнес-книги — Канал с подборками литературы по бизнесу
  • Библиотека программиста — Библиотека программиста. (для нубов)
  • Библиотека Python — Канал-библиотека с книгами, журналами и статьями по языку программирования Python (активный)
  • Библиотека Golang — Канал-библиотека по языку программирования Golang (пустующий)

Вакансии

  • Мой круг — Вакансии «Мой круг»
  • Вакансии и резюме из Digital — Вакансии и резюме из Digital
  • Digital Job — Вакансии в индустрии Digital
  • Web Freelance — Предложения по фрилансу для веб-разработчиков
  • Трактор на Джинне — Предложения на релокейт для программистов в Европу и США
  • Devaller — Вакансии от сообщества Devall

SEO, SMM и Копирайтинг

  • SEO life — Новости из мира SEO
  • SMM в Telegram — Канал про SMM
  • Главред — Канал Максима Ильяхова про текст. Советы и статьи о тексте, редактуре, информационном стиле и рекламе.
  • Паша и его прокрастинация — Как писать текст, проблемы пишущих, правила русского языка, советы писателей, книги о ремесле.

Разные и интересные каналы

  • #All-im-One Person — канал о технологиях, стартапах, автоматизации, лайфхаках и продуктивности. Экспертные советы по Evernote, Google и многому другому.
  • #Тыжпрограммист /dev/null — развлекательные IT-паблики в одном месте.
  • The After Times — Паста, мысли, критика.
  • Robotics — Робототехника, нейросети, киборги (свежие новости, обзоры разработок и интересные статьи).
  • RCmodels — Чат о моделизме и радиомоделизме.
  • Product-Shmoduct — Диджитал продукты и продакт менеджмент
  • Linkmeup — Официальный канал подкаста для связистов Linkmeup (новости подкаста и сетевых технологий).
  • #CoolAdmin — канал про системное администрирование, сети, сервера и системы хранения. С новостями и историями.
  • Gik.me — Канал подкаста gik.me — веселый подкаст о IT (на канале размещаются выпуски подкаста).
  • Drone News — Новости мира беспилотных летательных аппаратов.

LiveChat+ChatBot

Это не единая платформа, а два продукта — чат и AI-бот, разработанные одной компанией и легко интегрирующиеся между собой. 

ChatBot на своем продуктовом лендинге предлагает поболтать с ним

LiveChat — это чат с кучей фичей и возможностей, таких как: 

  • тикеты, 
  • аналитика, 
  • интеграции с Facebook, Slack, десятком CMS, сервисами для email и другими. 

Правда, воспользоваться большинством возможностей чата на триале нельзя — они платные. 

Что умеет ChatBot

ChatBot используют как вместе с LiveChat, так и независимо от него. Можно создать бота не только для сайта, но и для Facebook и других мессенджеров. У сервиса простой и приятный современный интерфейс. 

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

Технически с его помощью просто:

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

Вам помогут подсказки:

Всплывающие подсказки при первой настройке бота в сервисе ChatBot

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

Цена: от $50 до $499 и выше

Создание одного бота будет стоить от $50, на тарифах от $499 можно создать неограниченное количество ботов. Точная стоимость зависит от количества диалогов в месяц. ChatBot считается дополнительным оператором, так что в рамках использования интеграции с LiveChat за него придется доплачивать, как за оператора. Стоимость самой ограниченной версии сервиса LiveChat — от $19 за оператора. 

А теперь — код

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

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

Словарь обновлений состоит из двух элементов:  и . Нас интересует вторая часть — список всех обновлений, полученных ботом за последние 24 часа.

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

Теперь нужно добавить ещё 2 функции. Первая будет доставать из обновления, а вторая — отправлять сообщение.

Помните, как мы объединяли параметры при помощи и ? Вы можете сделать то же самое, добавив словарь в качестве второго дополнительного параметра в функциях / из пакета requests.

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

Хотя мы и добавили таймаут в 1 секунду, пример выше можно использовать только в обучающих целях, поскольку он использует частые опросы (short polling). Это плохо влияет на сервера Telegram, поэтому их нужно избегать. Есть ещё два способа получения обновлений через API — длинные опросы (long polling) и вебхуки (webhooks). Если мы будем использовать способ получения обновлений через  без параметров, то запросы будут происходить слишком часто.

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

Теперь бот должен работать нормально, но его всё ещё можно улучшить. Давайте инкапсулируем все функции в один класс. Должно получиться что-то вроде этого:

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

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

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

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

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

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

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

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

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

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

Шаг четвертый: настройка ветвей диалога

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

Сделайте “расположение” обязательным параметром

Сохраните настройки и проверьте поведение агента, задав ему простой вопрос “погода”:

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

Создайте возвращаемое уточнение для расположения

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

В настройка контекста “прогноз погоды” вбейте в поле “Add output context” название возвращаемого уточнения “location” и сохраните настройки.

Создайте новый контекст для уточнения

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

  1. Создайте новый контекст в разделе Intents или кликните по значку в строкеIntents левого выдвигающегося меню.
  2. Назовите новый контекст “Уточнение погоды” (или любое другое понятное вам название).
  3. Установите входящие и исходящие уточнения как “location”
  4. Добавьте реплики пользователя, например, “Что на счет завтра”
  5. Добавьте параметр сущности со следующими значениями:
    — Parameter Name:geo-city
    — Value: #location.geo-city
  6. Добавьте ответ для пользователя в раздел “Response”:
    — “Извини, но я не могу получить прогноз на $date-period в #location.geo-city”
  7. Включите использование webhook в меню Fulfillment.
  8. Сохраните настройки и протестируйте в консоли:

Шаг первый: Подготовка инфраструктуры.

В этом кейсе мы будем использовать только Telegram бота и API.AI, оба сервиса предоставляются бесплатно — нам остается только завести учетные записи.

Создайте бота Telegram

Чтобы создать бота — просто напишите @BotFather (это такой бот, которые умеет создавать и настраивать другие боты):

  1. Отправьте команду /newbot — так мы сообщаем @BotFather, что нам нужен новый бот
  2. Теперь @BotFather попросит нас дать имя новому боту. Это имя будут видеть наши
    будущие пользователи, поэтому название нужно давать понятное и простое.
  3. Последним шагом укажем для бота username, в конце которого нужно обязательно
    написать “bot”.
  4. Если имя не занято, получаем сообщение с подтверждением и токен доступа.

Чтобы было понятнее — ниже скриншот со всеми действиям:

Немного теории

Пришло время создать агента API.AI, который в сущности является проектом или контейнером (как вам удобнее называть). Агент содержит настройки контекстов, сущностей и ответов:

  • “контекст” (Intent) отражает связь между тем, что сказал пользователь и
    тем что должна сделать наша программа
  • “сущности” (Entities) — это инструмент извлечения значений параметров для
    нашей программы из естественного языка (того что сказал или написал
    пользователь)
  • “ответы” — это конечный результат работы нашей программы, который мы
    отправляем пользователю на его сообщение

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

Создайте проект в API.AI

Для регистрации в API.AI вам потребуется аккаунт Google (достаточно завести в почту в Gmail). Теперь перейдите по адресу https://api.ai/, нажмите на кнопку “SIGN UP FOR FREE”, а за тем выберите аккаунт, от имени которого хотите авторизоваться.

Теперь переходим к созданию самого агента. Нажмите на “Create agent” и укажите как минимум Имя(Name), Язык(Language) и Часовой пояс (Time Zone).

Заключение

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

Желаем вам успехов и процветания! Будем признательны за комментарии. Появились вопросы по теме? Задавайте, обязательно ответим!

Автор статьи: Виталий Цыганок

Разработчик сайтов, фрилансер. Учился в МГУПИ города Ставрополя по специальности “Прикладная информатика в экономике”, но бросил институт на третьем курсе. Имеет опыт работы официантом, почтальоном, грузчиком.

Рассматривает сайты как источник постоянного пассивного дохода. С партнером запустил с нуля более 25 интернет-ресурсов.

Сооснователь и редактор ХитёрБобёр.ru до 2019 года, на сайте отвечал за семантическое ядро и SEO-продвижение.

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

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

Adblock
detector