Как можно создать бота в мессенджере telegram

REDMOND

Как создать своего бота для Telegram за 10 минут

Favorite В закладки

Как создать своего бота для Telegram за 10 минут

Без единой строчки кода!

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

А если вы не подписались на бота от iPhones.ru, то пришла пора сделать это! @iPhonesRu_Bot

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

Есть два пути создания ботов. Первый — написать приложение с помощью Telegram API, а второй — воспользоваться сервисом для создания ботов. Один из таких, manybot.io, мы будем использовать в статье.

Устанавливаем Telegram

Инструкцию из статьи можно выполнить в версии Telegram для любой платформы:

Сама я буду использовать версию для OS X, так как без полноценной клавиатуры создавать бота не совсем удобно.

Создаем бота

1. Набираем в поиске Manybot, кликаем на значок бота и нажимаем на кнопку Start:

start_many_bot

add_new_bot

2. Нажимаем на кнопку Добавить нового бота:

botfather_new_bot

4. Переходим в @BotFather, нажимаем кнопку Start и вводим команду /newbot:

6. Вводим имя бота, которое будет отображаться при поиске и техническое имя бота, копируем полученный API-токен:

botfather_copy_api_token

7. Возвращаемся в @Manybot и вставляем в него API-токен из буфера обмена:

end_create_bot

manybot_description

8. Указываем описание бота:

bot_is_ready

9. Бот готов:

start_using_bot

10. Находим свой бот через поиск и начинаем пользоваться:

Создаем свою команду

В хорошем боте должны быть команды. Чтобы пользователь вводил запрос, а в ответ ему приходило что-то интересное/полезное. Вот инструкция, как создать простейшую команду:

1. Набираем /commands:
commands_insert
2. Набираем имя новой команды и текст, который она будет выдавать в ответ (при желании к тексту можно прикрепить файлы):
command_and_answer
3. Нажимаем кнопку Сохранить и дожидаемся завершения создания команды:
save_command

telegram_edit_command

Для того, чтобы отредактировать команду /hello надо набрать /commands, /hello:

test_telegram_in_other_account

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

Добавляем пункт в меню

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

commands_menu

1. Набираем /commands:

add_menu

2. Нажимаем на кнопку Настроить главное меню, а затем на кнопку Добавить пункт меню:

test_add_menu

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

Включаем автопостинг из соцсетей

В ботах можно настроить трансляцию новостей из Twitter, Youtube, VK или RSS.

1. Набираем команду /autoposting:
autoposting_start
2. Нажимаем кнопку с нужной соцсетью и указываем ссылку на страницу:
add_link

Создаем отложенный пост

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

1. Набираем команду /newpost:
start_new_post
2. Вводим текст поста и нажимаем на кнопку Отложить пост, указываем текущее время:
create_new_post
3. Указываем время поста и сохраняем пост:
set_post_time

Собираем данные

Еще с помощью ботов можно проводить опросы среди подписчиков:

create_new_commands

1. Набираем /commands, выбираем пункт меню Создать команду и вводим имя для новой команды:

create_question

2. Нажимаем на кнопку Добавить вопрос, выбираем тип ответа и вводим текст вопроса:

create_command

3. Нажимаем на кнопку Сохранить и получаем уведомление об успешном создании команды:

forms_answers

4. Ответы на вопрос можно посмотреть в Главное меню-> Ответы на формы -> название команды:

Вот и все, что нужно знать, чтобы создать простейшего бота. Больше информации о функциях, которые может добалять manybot.io можно узнать, если набрать в своем боте команды /help.

Если нужно что-то посложнее

Возможности ботов Telegram гораздо шире, чем те которые есть у ботов, созданных на платформе code.telegram.org можно почитать подробнее о Telegram API и создании приложений на его основе.

Кстати, для расширения кругозора рекомендую статью 10 фактов о Telegram, которые ты не знаешь.

Favorite В закладки

Инструкция: Как создавать ботов в Telegram

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

Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.

Рассмотрим API на примере создания тривиального бота:

1. Регистрация

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

Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.

Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/getMe, говорят, не всегда работает с первого раза.

2. Программирование

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

Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)

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

Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.

Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.

Собственно, её код довольно прост:

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

3. Команды

Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.

Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.

После этого можно добавить какую-нибудь свою команду, например, /base64:

REDMOND

Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:

command1 — Description
command2 — Another description
I:
whoisyourdaddy — Information about author
base64 — Base64 decode
BotFather: Success! Command list updated. /help

C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

4. Свобода

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

UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/<command>) (https://core.telegram.org/bots#privacy-mode)

  • All messages that start with a slash ‘/’ (see Commands above)
  • Messages that mention the bot by username
  • Replies to the bot’s own messages
  • Service messages (people added or removed from the group, etc.)

Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.

Для начала в Handler добавляем обработчик:

А потом в список команд добавляем псевдо-речь:

Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

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

Для примера расширим словарь RESPONSES:

И будем отлавливать текст <at_sticker>:

Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:

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

6. Возможности

Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).

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

7. Ограничения

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

К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.

UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).

Все создают чат-ботов в Telegram. А мне надо? И как сделать?

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

Чат-боты помогают повысить потребительскую ценность бизнеса при сравнительно небольших затратах на создание таких инструментов.

51 % клиентов, по данным чат-бота Ubisend, ожидает, что бизнес будет доступен в режиме 24/7.

Еще немного статистики:

  • подавляющее большинство пользователей (87,2 %) имеет нейтральный или положительный опыт общения с чат-ботами; , в 2021 году количество уникальных чат-ботов приблизилось к 1,8 миллиардам единиц. Глобальный рынок чат-ботов оценен более чем в 600 миллиардов долларов;
  • в то же время 60 % пользователей предпочли бы дождаться, пока им ответит живой сотрудник. Чат-боты кажутся этим людям примитивными и неспособными решать проблемы клиентов.

Топ-8 сценариев для чат-бота

Использовать чат-бот в Telegram можно по-разному:

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

Это самые очевидные сценарии использования чат-бота в Telegram. Однако разработчик может настроить бот для решения практически любой задачи.

6 особенностей чат-ботов в Telegram

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

Как сделать чат-бота в Telegram: пошаговая инструкция

Создаются и управляются боты с помощью другого бота BotFather.

Чтобы создать чат-бота, выполните следующие действия:

  • установите десктоп-версию Telegram и запустите ее;
  • откройте Controller Bot;
  • нажмите START внизу экрана:

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

  • Используйте команду добавления нового канала:

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

  • Получите подробную инструкцию, как подключить нового бота:

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

  • Следуя инструкции, отправьтесь в BotFather и нажмите START внизу экрана:

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

  • Выберите команду /newbot:

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

  • Укажите полное имя бота:

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

  • Теперь дайте боту ник. Ник должен оканчиваться на слово bot:

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

  • Получите уникальный токен и скопируйте его. В случае потери или удаления диалога не нужно паниковать. Снова отправьте /token в диалог, и новый вариант кода будет сразу же создан.
  • Вернитесь в ControllerBot и отправьте токен в диалог:

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

Осталось выполнить два действия: добавить созданного бота в администраторы канала и переслать любое сообщение из созданного канала в ControllerBot:

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

Для этого создайте новый публичный канал через левое меню, нажав кнопку New Chanel:

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

Чтобы добавить созданного бота в администраторы канала, нужно выбрать его в чатах и нажать кнопку Manage Channel:

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

. и назначить администратора:

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

После выполнения двух требований ControllerBot мы успешно подключили канал. Осталось указать город для уточнения часового пояса:

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

Подтверждаем, нажав «Верно»:

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

В самом низу нажимаем кнопку «Создать новый пост»:

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

Бот предложит настроить форматирование. В 95 % случаев подойдет Markdown (прим. ред. – облегченный язык разметки):

Нажимаем «Продолжить»

Теперь создаем первый пост. Можно написать в нем любой текст, чтобы проверить, как это работает:

Создаем первый пост и нажимаем «Далее»

ControllerBot возвратит отправленную запись и предложит задействовать дополнительные инструменты:

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

  • Чтобы добавить в пост картинку, воспользуйтесь кнопкой «Прикрепить медиафайл».
  • Можно добавить в пост до шести смайлов, которые пользователи будут использовать в качестве реакций:

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

  • Если нужно привязать к кнопке ссылку, воспользуйтесь этой функцией:

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

Внимание: при добавлении URL-кнопки строго соблюдайте предложенный ботом синтаксис. Ему нужно отправить список всех URL-кнопок в одном сообщении.

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

После подготовки поста его нужно «отправить в мир». Для этого нажмите «Далее»:

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

. и выберите предпочтительный сценарий публикации:

Доступно несколько вариантов публикации: мгновенная и отложенная. Можно поставить таймер для удаления записи

Синтаксис. Команды. Настройки

Обязательно изучите справочник Bot API. Там вы найдете наиболее полную информацию по запросам, типам и методам используемого HTTP-интерфейса.

Главные команды запомнить несложно:

  • /start – приветственное сообщений, которое отправляется пользователю при первом взаимодействии с ботом;
  • /help – служебное сообщение, содержащее советы по использованию бота (список команд, краткое описание бота или алгоритм действий);
  • /settings – сообщение с настройками + возможности их изменения.

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

Соблюдайте синтаксис: /команда [необязательный] [аргумент]. Например, так мы получаем статистику по боту: /get_messages_stats

Обратите внимание: список команд будет появляться сразу после ввода символа «/». Не забудьте активировать описание команд в «отце ботов».

О некоторых параметрах BotFather мы уже говорили. Это:

  • Токен – уникальный ключ, который используется для доступа к Bot API. Токен имеет следующий вид: 110201543:ААHdqTcvCН1vGWJxfSеоfSAs0K5PALDsaw.
  • Name – значение выводится только в чатах и контактах пользователя.
  • Username – не длиннее 32 символов. Может включать латиницу, цифры и символ «_».

Важные команды для чат-ботов

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

Теперь посмотрим основные команды BotFather.

  • /setname – установить имя бота;
  • /setdescription – установить описание бота;
  • /setabouttext – установить короткий текст о боте в его профайле;
  • /setuserpic – установить аватар бота;
  • /setcommands – установить команды;
  • /setjoingroups – установить разрешение на добавление бота в группы;
  • /setprivacy – установить причастность сообщений;
  • /deletebot – удаление бота.

В Google и «Яндексе», соцсетях, рассылках, на видеоплатформах, у блогеров

REDMOND

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

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