Как сделать bot в telegram
Перейти к содержимому

Как сделать bot в telegram

  • автор:

Инструкция: Как создавать ботов в 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:

Для пользователей мобильного 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 с нуля. Он сможет отвечать на запросы простыми сообщениями и отправлять картинки. Подойдет для организации процессов разработки, поддержки и продаж.

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

Такого бота можно написать с использованием serverless-подхода в крупных облаках, например, с помощью AWS Lambda или Google Cloud Functions. Мы напишем функцию на Yandex Cloud Function, сделаем Object Storage, чтобы хранить файлы, и спрячем нашу serverless-архитектуру от пользователя с помощью сервиса Yandex API Gateway, который позволяет выступить фронтом для пользователя.

Прежде всего нужно зарегистрировать наше приложение в Telegram. Найдите в мессенджере главного бота BotFather и наберите команду /newbot. Для этого достаточно написать его имя user name и account name. В нашем случае account name — Serverless Hello Telegram Bot, username — ServerlessHelloTelegramBot. В результате вы получите token, запомните его, он потребуется на следующих этапах.

Как создать своего бота для 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 В закладки

Как создать бота для Телеграм — подробная инструкция

картинка: как создать бота в телеграм

Разберемся, как легко и быстро создать Телеграм-бота

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

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

Начнем разбираться по порядку.

Содержание:

  • Бот в Телеграм: что это
  • Как создать бота в Телеграм
  • Как создать бота в Телеграм: что еще нужно знать

Бот в Телеграм: что это

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

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

Чтобы узнать подробнее о том, как работают роботы в Телеграм, рекомендуем нашу подробную статью.

Для организации бизнеса в Телеграм создание ботов — настоящее спасение. Они сокращают трудозатраты и вполне способны разгрузить или вовсе заменить несколько сотрудников сразу.

Многие думают, что создать такого робота сможет только программист. Это правда, но только отчасти.

Спешим вас переубедить: простого Телеграм-бота можно собрать за несколько минут самостоятельно без знания языков программирования и кода.

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

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

Лучше все это нарисовать в виде схемы, чтобы не запутаться и ничего не забыть.

Прорисовка алгоритма — важный этап, который нужно пройти, прежде чем создать бота в Телеграм. Не пренебрегайте им!

картинка: сделать бота для телеграм

Блок-схема — важный помощник в создании Телеграм-бота

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

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

  • Воспользоваться нашей статьей с лучшими ботами;
  • Посмотреть наш Каталог с множеством ботов.

Пошаговый алгоритм, как создать бота для Телеграм

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

картинка: создать бота в телеграм

Перейдем к пошаговому процессу создания

После прохождения подготовки, необходимо идти строго по сценарию:

  • Перейти по прямой ссылке или найти через поисковую строку прародителя всех роботов Телеграм: @BotFather. Просто скопируйте это название вместе с символом @.
  • Кликните по нему и нажмите “Запустить”.
  • Телеграм-робот отправит вам целый список команд. На первом этапе нас будет интересовать самая первая из них: /newbot. Щелкаем по ней.
  • Дальше в строке ввода текста напишите, как будет называться ваш робот.

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

  • Выберите имя. Обратите внимание, в конце обязательно должны быть буквы bot.
  • Затем BotFather предложит загрузить аватарку для Телеграм-бота и придумать его описание. В этом же сообщении вам будет выслан токен API.

Наш совет: на всякий случай скопируйте эту комбинацию из цифр и букв в какой-нибудь текстовый файлик, чтобы не потерять.

На этом этапе вас уже можно поздравить с созданием собственного робота. Осталось совсем немного — завершить его настройку.

  • Запускаем робота @Manybot.
  • Добавляем Телеграм-бота командой /addbot .
  • Копируем и отправляем высланный @BotFather токен.
  • Пишем, для чего предназначен наш бот.

В принципе, здесь работа по созданию заканчивается. Можно сразу настроить автопостинг из соцсетей: /autoposting .

Рекомендуем нашу статью о Телеграм-ботах для накрутки лайков и сохранения фотографий из соцсети Instagram.

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

Как создать бота в Телеграм: что еще нужно знать

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

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

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

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

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

картинка: создание бота в telegram

Поговорим про сторонние сервисы, которые помогают создать Телеграм-ботов

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

Р асскажем о каждом из них подробнее:

  • Flow XO.

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

  • Recast.AI.

Это еще один конструктор для того, чтобы создать роботов. Как говорят создатели проекта, на обучение бота уйдет не более 8 минут. Здесь можно получить кучу возможностей бесплатно .

  • Для тех, кто решил всерьез заняться продажами в Телеграм, советуем присмотреться к @botoboto_bot.

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

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

Надеемся, наша статья оказалась полезной! Делитесь в комментариях своими ботами и добавляйте их в наш Каталог

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

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