Как создать бота в телеграмм без программирования. Flibusta, Антон и прочие боты в telegram — обзор
В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных "фишек" Telegram является его якобы защищённость - по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.
В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы "запилим" полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории .
Документация, описывающая процесс взаимодействия с ботами Telegram находится . Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов - telepot . Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.
Как создать Telegram бота?
Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:
- Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно
- Добавляем к себе в контакт-лист бота с именем BotFather
- Запускаем процедуру "общения" с ботом нажатием кнопки Start . Далее перед нами предстанет список команд точно как на скриншоте.
- Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot . Например, DjangoBot или Django_bot.
- Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта 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). Либо же можно получить от 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. В итоге после выполнения этих команд мы получим:
{u"username": u"PythonPlanetBot", u"first_name": u"Python Planet Bot", u"id": 199266571}
Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.
Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start
Выполняем код:
TelegramBot.getUpdates() [{u"message": {u"date": 1459927254, u"text": u"/start", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 1, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, 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": {u"date": 1459928527, u"text": u"hello bro", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 13, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, 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]
Контент-маркетинг
Как создать бота в Телеграмм без навыков программирования?
Нужен собственный чат-бот? Чтобы спроектировать его, необязательно владеть кодом: современные технологии и бесплатные сервисы позволяют создать бота telegram без программирования, быстро и легко.
Если необходим простой продукт без искусственного интеллекта, то вы вполне справитесь своими силами. Сегодня разберем процесс создания и настройки элементарного чат-бота: на примере сервиса Manybot.
Но сперва - теория:)
Мы уже писали, зачем нужны боты в Telegram, Facebook, WhatsApp и прочих мессенджерах - но повторимся. Если верить цифрам, чат-боты станут «следующей большой вещью» - так, аудитория мессенджеров уже превысила аудиторию социальных сетей, и отрыв продолжает расти. Польза ботов для аудитории очевидна. Это удобно: они бронируют билеты, заказывают еду, такси, ищут информацию и подходят для множества других функций. Бизнесу тоже открываются интересные возможности:
- новый маркетинговый канал;
- низкая (пока еще) конкуренция;
- высокая интерактивность (боты хорошо вовлекают во взаимодействие);
- реальная польза инструмента (если обеспечите ее, то создадите ценность и укрепите имидж бренда).
Примерно так работают боты телеграм на формирование «лица» бизнеса. Кстати, собственный чат-собеседник придаст вашей компании флера «прогрессивной» - ведь это громкий, но все еще редкий в России тренд.
Как функционируют чат-боты?
Разберем принципы работы таких программ. Существует два типа ботов. Первые «прямолинейны», основаны на командах, а вторые наделены искусственным интеллектом. С первыми более понятно - их «нервная система» подчинена строгим алгоритмам и правилам. «Если пользователь отправляет запрос А, я выполняю В». Железно и без интерпретаций.
Но как работают боты telegram, «обремененные» сознанием? Они опираются на машинное обучение и интеллектуальный анализ данных. Чтобы полностью раскрыть эти термины, нужно писать диссертацию. Но суть - в создании алгоритмов, способных к обучению. Есть два пути: индуктивный (обучение через поиск общих закономерностей), и дедуктивный - обучение через выгрузку всего массива данных. Имеет ли второй путь отношение к самообучающимся системам - спорно до сих пор. И скорее, не имеет. Поэтому в современной науке принято алгоритмами машинного обучения считать работающие индуктивным способом - ищущие закономерности в данных и интерпретирующие их.
Но оставим математику. Специальные платформы с «человеческим» интерфейсом знают, как работает бот в телеграмм - и этого хватит, чтобы создать его, не владея кодом.
Запускаем бота без знания кода
Вернемся к теме статьи - поговорим про создание чат бота telegram с помощью сервиса Manybot. Мы выбрали его по нескольким причинам. Основная - сегодня это наиболее адекватное решение на русском языке с простым интерфейсом. Система действительно помогает в создании бота на всех этапах, и не требует знания кода или API. Существуют альтернативы на английском, но они либо более сложные, либо не «дружат» с Telegram-мессенджером. Поэтому пока - Manybot 🙂
Эту платформу создал Микаэл Ян, сын основателя Abbyy и талантливый предприниматель сам по себе. Но речь не о нем, а об его детище. Manybot - это чат-бот, помогающий настраивать своего бота. Разберем процесс поэтапно.
1. На сайте перейдите по СТА «Открыть Manybot в Telegram» - действие предполагает, что у вас уже есть аккаунт в мессенджере 🙂
2. Так вы перейдете к боту-помощнику. После приветствия он, как в сказках или компьютерных играх, сразу выдаст следующий квест 🙂 Все боты в Telegram регистрируются и настраиваются через «главного бота», имя которому @BotFather.
Поэтому, чтобы добавить бота, вы должны сначала зарегистрировать его у «Крестного отца» мессенджера. На скриншоте ниже это нам объясняет сам Manybot.
3. Ok, идем к @BotFather
- кстати, он англоязычный. Сперва задаете ему команду /newbot, после чего он справится об имени и «username» бота. Первое будет отображаться как название чата, а второе - «адрес» бота в системе.
Выбрав название (или найдя свободное из подходящих), задайте команду /token. Она нужна для возвращения в Manybot. Кстати, вот как создать чат бота в телеграмме - ведь формально, он готов. Осталось самое интересное - настроить его и «выучить» командам.
4. Скопируйте токен и возвращайтесь к Manybot.
Осталось только отправить скопированный код системе и настроить описание бота. Это своего рода СТА - маленький текст, встречающий новых пользователей. Объясните, для чего нужен бот в telegram потенциальным клиентам, и зачем на него подписываться.
5. Manybot выдал ссылку на вашего бота.
Кое-что он уже умеет - например, по команде /start выдает вписанный ранее текст и меню разработчика. Примечание: функции после текста «Используйте /off чтобы приостановить подписку» не видны и не доступны рядовым пользователям.
Взаимодействия с ботами строятся на командах - поэтому создадим несколько и для нашего. Выбираем /commands.
6. Создаем команду.
Кстати, если сбивает с толку, откуда у едва зарегистрированного бота интерфейс и команды - повторим, это интерфейс сервиса Manybot. Ваши клиенты не увидят функционала. Итак, бот-платформа предлагает выбрать название команды.
7. Теперь сделаем кнопку главного меню
, привязанную к команде. Выбираем пункты: «Настроить гл.меню»/«Добавить пункт меню», выбираем команду («/read_news» в нашем случае) и задаем название пункту (у нас это - «Новые статьи»).
8. На скриншоте ниже - «тестовый запуск» нашей команды.
Работает как часы:)
9. Добавим рандомизированную рассылку.
Выберите пункт меню «Включить режим случайного сообщения» и прикрепите к команде посты - от двух до нескольких сотен, лимит не указан. Так, по запросу пользователя система выдаст один из этих постов, случайным порядком.
Мы решили добавить команду /random_article, привязанную к пункту «Получить случайную статью». К команде прикреплено три сообщения со ссылками на блог-посты РобоМаркетинг.
На скриншотах ниже видно, как мы это сделали:
И очередной «тестовый запуск». Прекрасно работает 🙂
Вместо заключения
Конечно, это самые азы - всего два элементарных пункта. Но теперь вы получили представление, как создать бота в телеграмм для «чайников». У вас есть база, которая расширяется чтением статей, изучением языков программирования и самообразованием в целом.
Manybot - далеко не единственный сервис. Существует англоязычная Мeyа для более продвинутых ботостроителей, СhatFuel для Facebook Messenger, и россыпь прочих вариантов… о которых мы расскажем в следующих материалах 😉
Делаем простого бота для публикации новостей в канал и автоматические ответы на вопросы за 6 шагов.
В закладки
Материал подготовлен при поддержке
После бурных обсуждений в ИТ-прессе по поводу эффективности чат-ботов, они заняли свою нишу в экосистеме пользователей и компаний. Например, часто проекты внедряют ботов для оповещения о каких-либо событиях, а службы поддержки используют их для того, чтобы быстро отвечать на часто задаваемые вопросы клиентов.
В этой инструкции мы рассмотрим наиболее простой способ создать бота собственными руками и объясним, как он работает.
Начнем с разработки бота, который сможет автоматически отправлять в Telegram-канал новости компании, опубликованные на сайте или в Facebook.
Шаг 1. Создаём бота в Telegram
Бот в Telegram создается при помощи другого бота под названием BotFather . Отправляем ему команду /newbot, выбираем имя, которое будет отображаться в списке контактов, и адрес. Например, «Бот для DTF» с адресом «dtf_news_bot».
Если адрес не занят, а имя введено правильно, BotFather пришлет в ответ сообщение с токеном - «ключом» для доступа к созданному боту. Его нужно сохранить и никому не показывать.
Через BotFather также можно добавить аватарку для бота, описание и прочее.
Шаг 2. Создаём канал в Telegram
Теперь создаём канал с любым названием и адресом, и переходим в его настройки. Всё, что требуется - добавить в список администраторов созданного нами бота - именно он будет публиковать заметки в канал.
Для поиска бота можно использовать его адрес. Например, «dtf_news_bot».
Шаг 3. Создание условия
Следующий этап - научить бота отправлять новости с сайта в созданный канал. Для этого воспользуемся популярным сервисом для автоматизации IFTTT .
С его помощью можно создавать инструкции для работы бота. В нашем случае она выглядит так: каждый раз, когда в RSS-ленте сайта появляется новая запись, он должен отправлять сообщение в канал Telegram.
IFTTT расшифровывается как If This Then That
Переходим в раздел IFTTT "My Applets", нажимаем на кнопку "New Applet " и далее на ссылку "This". Находим в списке функций триггер Feed , New feed item и указываем URL-адрес нашей RSS-ленты. Например, у Wordpress-сайтов она обычно расположена по адресу example.com/feed/.
Вместо RSS-ленты можно отслеживать появление новых записей в Twitter или Facebook -аккаунте - для каждой функции в IFTTT предусмотрены отдельные модули.
Теперь переходим ко второму шагу - выбираем действие, которое будет выполняться при обнаружении новой записи в RSS. Нажимаем на "That" и ищем Maker Webhook , "Make a web request" - с помощью этого модуля можно отправлять запросы к любым сервисам. В нашем случае - к боту в Telegram.
В открывшейся форме в поле URL нужно указать ссылку https://api.telegram.org/botТОКЕН /sendMessage, подставив в неё токен, сгенерированный на первом шаге. Метод: POST, тип контента: application/json.
Body - поле для шаблона запроcа, который будет отправляться в Telegram. В нём указываем, в какой канал нужно отправить сообщение и что в нём должно быть написано:
{"chat_id":"@адрес_канала", "text":"{{EntryTitle}} {{FeedUrl}}"}
- chat_id - адрес канала, в который необходимо отправить сообщение. Таким образом одного бота можно подключить сразу к нескольким каналам. В качестве адресата можно указать и конкретного пользователя. В таком случае вместо адреса канала необходимо указать его ID (можно получить при помощи бота).
- text - содержание сообщения. Например, заголовок материала из RSS (EntryTitle), его содержание (EntryContent) и ссылка (FeedUrl). Список доступных опций можно посмотреть по кнопке Ingredient.
Если всё настроено верно, бот отправит сообщение из RSS-ленты в канал. У триггера в IFTTT есть задержка, поэтому сообщение, появившееся в RSS-ленте, отправится в Telegram не сразу, а спустя 30-60 минут.
В качестве условия для отправки сообщения можно выбрать любой другой сценарий, доступный на IFTTT. Например, Weather Underground умеет каждый день отправлять сообщение с прогнозом погоды на завтра. Триггер Stocks можно настроить на отправку стоимости акций при закрытии торгов.
Теперь решим более сложную задачу - научим созданного бота отвечать на сообщения пользователей. Например, присылать по команде прайс-лист, контакты или отвечать на часто задаваемые вопросы клиентов.
Шаг 4. Подключаем сервер
На этом этапе понадобится веб-хостинг и сертификат SSL, который можно получить бесплатно с помощью сервиса Let"s Encrypt.
Удобнее всего создать отдельный поддомен для бота - например, bot.example.com - и разместить на нём один файл index.php. Внутри файла размещаем код простейшего бота c сайта Telegram.
В код бота нужно внести всего два изменения:
- в строке define("BOT_TOKEN", "12345678:replace-me-with-real-token"); вместо 12345678:replace-me-with-real-token написать токен, полученный на первом шаге;
- в строке define("WEBHOOK_URL", "https://my-site.example.com/secret-path-for-webhooks/"); вместо https://my-site.example.com/secret-path-for-webhooks/ указать URL-адрес файла с кодом для бота: https://bot.example.com/index.php.
Шаг 5. Связываем Telegram-бота и сервер
Теперь необходимо связать Telegram и файл на сервере, чтобы запросы, отправленные боту в мессенджере, обрабатывал наш скрипт.
Для этого понадобится консоль. У разных хостинг-провайдеров она может находиться в разных разделах интерфейса управления сайтом. Кроме того, можно воспользоваться программой Terminal на macOS, введя через неё команду ssh имя_пользователя@адрес_домена .
После ввода пароля, печатаем для нашего поддомена простую команду:
php -f /var/www/bot.example.com/index.php
Nice to meet you - ответ бота на отправленное пользователем сообщением.
Ниже в коде добавляем дополнительные ответы. Например, чтобы в зависимости от отправленного слова, бот присылал необходимую информацию пользователю (как в
Боты (иногда их называют роботами) являются специальными аккаунтами в мессенджере Telegram, которые осуществляют автоматическую обработку и отправку сообщений.
Создать их могут не только программисты, но и обычные пользователи, желающие ознакомиться с особенностями этих роботов.
Вся прелесть ботов состоит в том, что они способны выполнить практически любую задачу, которую вы им прикажете сделать. Роботы могут производить регистрацию пользователей на ресурсе, заниматься рассылкой новостей, отвечать на вопросы и так далее. Как видите, сфера их применения буквально безгранична.
Чтобы создать бота Telegram , вам, естественно, понадобится аккаунт в этом мессенджере. Не стоит думать, что для работы с ними необходимо обладать феноменальными знаниями, ведь все процессы происходят на сервере, где запускается бот.
Итак, теперь перейдем непосредственно к процессу разработки. Сначала вам нужно запустить приложение и в поиске ввести «Manybot». Он представляет собой некий конструктор ботов Telegram , поэтому в процессе вы точно не столкнетесь с трудностями:
Затем начинайте следовать инструкциям робота и нажимайте Start:
После этого Manybot начнет давать вам подсказки на вашем родном языке и предложит несколько вариантов действий. В нашем случае необходимо выбрать «Добавить нового бота»:
Затем будет предложено добавить в контакты BotFather, который в кругах приложения известен как родоначальник всех ботов, которые когда-либо создавались в мессенджере. Начать диалог с ним довольно-таки легко. Просто наберите и отправьте сообщение /newbot:
С этого момента и начинается непосредственная разработка ботов для Telegram . Первым делом, дайте имя своему роботу. Придумайте его и отправьте текст с именем в чат. Помните, что имя бота должно заканчиваться на «bot»:
Вам сразу же будет выдан специальный код бота, который необходимо скопировать и выслать в диалог с Manybot:
В принципе, этот шаг уже считается завершающим, поэтому инструкция о том, как создать бота в Телеграмм , подходит к концу. Робот практически создан и может начинать самостоятельное функционирование. Теперь просто задайте его описание:
Все сложилось удачно? Тогда это говорит о том, что мы успешно пишем бота для Telegram . С данного момента вы будете работать конкретно с вашим ботом. Посторонние диалоги больше не понадобятся:
После попробуйте нажать кнопку «Настройки», дабы вы смогли задать цель жизни робота. Если вам необходима автоматическая трансляция обновлений на сайте, выберите функцию «Автопостинг»:
Трансляция может осуществляться из YouTube, VK, Twitter и RSS:
Если вам хочется отправлять RSS-ленту с ресурса в чат, достаточно выбрать соответствующую строку. Теперь вашим подписчикам будет намного проще следить за свежими материалами сайта:
Итак, вопрос о том, как написать бота для Telegram , может считаться закрытым. Вы сами смогли убедиться в том, что ничего сверхъестественного в этом процессе нет. Самое главное – ваши пользователи всегда будут оставаться в курсе событий.
Telegram - популярный мессенджер, за разработку которого отвечает Павел Дуров. На данный момент его используют более сотни миллионов человек. Такая популярность связана с внушительными возможностями приложения. Помимо отправки сообщений живым людям, мессенджер предлагает ряд других функций. И в первую очередь - взаимодействие с ботами . Это специальные программы, запрограммированные на выполнение определенных действий, реализованные через чат Telegram.
Сейчас роботы в Телеграмм очень востребованы. Они имеются практически у любого популярного интернет-ресурса, добавляя пользователям комфорта. Поэтому владельцев крупных групп, сайтов, порталов или просто обычных посетителей интернета интересует то, как создать бота в Телеграмм.
Есть два варианта решения этой задачи. Первый является самым сложным, для его реализации требуются знания в области программирования. Бота можно создать посредством Telegram API . Второй - гораздо более простой. Можно воспользоваться специальным ресурсом, который составит программу бота по вашим указаниям. Сайтов, предлагающих такие возможности очень много. Также существуют специальные боты в Telegram, выполняющие данную задачу. Но в статье пойдет речь о ресурсе manybot.io, который является одним из самых популярных.
Процедура создания
Для создания бота достаточно выполнить 7 простых шагов:
- Вводим в окне поиска Manybot, открываем и кликаем на кнопку Start;
- В появившемся меню выбираем русский язык, далее - пункт «Добавить нового бота»;
- Вам предложат перейти на @BotFather, делаем это, начинаем с ним чат, отправляем сообщение /newbot;
- Поочередно вводим название аккаунта и техническое имя;
- Сохраняем отправленный API-токен;
- Переходим обратно к @Manibot, отправляем ему полученный API-токен;
- Вводим описание аккаунта.
На этом процедура завершена, созданного робота можно найти через поиск и начать его использование. Теперь пользователю нужно заняться наполнением аккаунта, включением новых команд, возможностей и настроек. С этим получится разобраться по ходу дела.
Это довольно простой способ того, как сделать бота в Telegram . Если же вы хорошо разбираетесь в программировании, то можно взяться за выполнение задачи собственными силами. На сайте code.telegram.org подробно расписана информация о Telegram API и программировании на нем. Все статьи представлены на английском языке.