BotFather – «бот над всеми ботами» в Телеграмме. БотФазер представляет собой интерфейс доступа к API (Application Programming Interface) мессенджера Telegram. С помощью BotFather вы можете создавать ботов и управлять существующими.
Что такое бот в Телеграмме и чем отличается от обычного пользователя?
- Для создания бота не нужен номер телефона (с декабря 2022 Телеграмм убрал это требование и для обычных юзеров).
- Нет статуса «онлайн» или «последний визит». Вместо этого прописывается «бот».
- Bot не может сам начать общение с пользователем. Но юзеры могут вызвать его в чате.
- Имя пользователя должно заканчиваться на «bot».
- У ботов в Телеграмме ограниченное облачное хранилище (cloud storage), поэтому старые сообщения удаляются после их обработки.
В официальной документации Телеграмма указано, что пользователи и разработчики создали более 10 млн ботов.
Варианты использования разные: интеграция с другими сервисами (1С, умный дом, сайт), перевод текстов, напоминания, опросы, отображение погоды, расчет курсов валют и многое другое.
Как создать бота для Телеграма через BotFather: инструкция и пошаговые действия
Чтобы сделать бота в Telegram без кода и навыков программирования, необходимо:
В диалоговом окне указываем команду /start, чтобы запустить сервис. Система показывает доступные команды (редактирование бота, настройки, игры). Вписываем /newbot, чтобы запустить процесс создания.
Система просит указать название (к примеру, в нашем случае ChatLabs_bot). После этого необходимо вписать username – BotFather сразу предупреждает, что юзернейм бота должен заканчиваться на слово bot. Вписываем ChatLabs_bot.
В случае успеха видим сообщение о том, что наш бот для Телеграмма создан и готов к работе.
На этом этапе вы получаете токен для доступа к HTTP API Telegram. Не передавайте token третьим лицам.
Все! Вы создали бота для Телеграма при помощи БотФазера. В информационном сообщении найдете ссылку на него (в нашем примере это t.me/ChatLabs_bot).
Если перейти по урлу, увидите бота.
Чтобы начать работу с ним, нажмите «Старт».
Создать бота в Телеграме самостоятельно и без навыков программирования можно. Но если вы хотите добавить кастомные функции (вывод погоды, показ курса валют, близлежащих заведений и так далее), то необходимо написать код. К примеру, мы в ChatLabs используем Python и реализуем для заказчиков проекты любой сложности.
Создавали бота доставки еды (интеграция с iiko, прием оплат, уведомление пользователя о статусе заказа), бота для дилера напольных покрытий (добавление партнеров через 1С, просмотр остатков на складе, поиск аналогов, работа с корзиной), чат-бота для службы такси (заказ авто на определенное время, заявки на работу для водителей и другие). Предлагаем посмотреть примеры решений для интернет-магазина, стартапа, мероприятия.
как создать телеграм бота. Как создать бота в telegram. как сделать бота в телеграмме
Чтобы посмотреть список ваших ботов, просто задайте команду /mybots. В диалоговом окне увидите названия.
Команды BotFather: редактирование и удаление ботов в 2023 году в 1 клик
Выше мы уже разобрали 2 основные команды БотФазера:
- /newbot – создание нового бота;
- /mybots [beta] – получение списка существующих.
Редактирование ботов осуществляется командами:
- /setname – выбрать имя (или изменить его). Это то, что будет отображаться в диалоговом окне.
- /setabouttext – добавить приветствие. Это тот текст, который будет видеть пользователь до того, как нажмет на «START» для запуска.
- /setdescription – указать описание (если нужно). Дескрипшен будет виден в профиле. Как правило, в описании перечисляют, как работает бот, для чего создан, какие правила.
- /setuserpic – установить фото / аватар. Обратите внимание, что есть 2 вида: ботпикча и дескрипшен-пикча. Первый используется как аватар. Второй появляется в блоке What can this bot do. В качестве дескрипшен-фото принимаются и GIF (требования к разрешению фото – 640×360, ограничения по гифкам – 320×180, 640×360 or 960×540).
- /setcommands – установить список команд, которые будут доступны для использования. Система просит прописать их в формате «command1 — Description» (т.е. «команда – описание»). На практике это выглядит как Buy – купить, Order – заказать.
- /deletebot – удалить бота. Сделать это в 1 клик не получится. Система получает команду, затем просит вас еще раз подтвердить действие. Только после этого удаляет.
Управление настройками осуществляется при помощи команд BotFather. Интерфейс интуитивно понятный.
Настройки BotFather: токен, платежи, управление группами, передача прав и другие
Вы можете задать команду /mybots, выбрать нужного и использовать кнопки управления.
API token в Телеграм от BotFather: как получить и сгенерировать новый
Чтобы увидеть токен для доступа к API Telegram, кликаем на «API token». Система автоматически покажет уникальную комбинацию из букв, цифр, знаков препинания.
Если старый токен попал в руки мошенников или был утерян, используйте команду «Revoke current token».
Bot Settings в Telegram от BotFather: добавление в группы, права админа, privacy mode и другие
В каждой из вкладок находятся дополнительные настройки.
- «Allow Groups?» – можно или нельзя добавлять бота в группы.
- «Group Privacy» – активирует или деактивирует режим конфиденциальности «Privacy mode».
- «Group Admin Rights» – какие права у администратора (добавлять новых администраторов, приглашать новых пользователей, удалять сообщения, банить / разбанить юзеров, управлять голосовыми, а также другие).
- «Channel Admin Rights» – аналогично предыдущему, но касается прав администратора канала.
- «Domain» – привязать веб-сайт, чтобы использовать виджет входа в Telegram.
- «Payment» – список доступных платежных систем для вашего бота (Юкасса, Сбербанк, PayMega, CasCad, iPay88, Робокасса и другие). Доступно более 15 методов проведения платежей для 200+ стран мира.
Чтобы передать Телеграмм-бота другому лицу, используйте «Transfer ownership». В новом окне необходимо будет указать логин рецепиента – того, кому передаете бота.
Что такое Inline mode (инлайн мод) в ботах Телеграмм?
Режим встроенных запросов для взаимодействия с ботом.
Классический вариант – команды через кнопки или ввод /mybots и тому подобных.
Чтобы активировать опцию, задаем команду БотФазеру /setinline. Дальше указываем текст-заполнитель, который будет показываться в поле ввода после указания имени бота.
Inline mode в Telegram поддерживает 20+ типов контента, среди которых:
Вот как это выглядит в Телеграмме:
Как сделать игру в Телеграмм: кнопки BotFather и настройки развлечений
Настройки БотФазера позволяют создавать HTML5-игры, а затем предлагать их в группе или приватных чатах. Типичные примеры – викторины, шашки и шахматы, а также другие. Список команд BotFather, которые используются для создания, редактирования, просмотра и удаления игр.
Созданную игру можно отправлять как обычное сообщение или при помощи инлайн-режима (с кнопкой для старта). Когда пользователь нажимает на запуск игры, бот получает callback с информацией о выбранном развлечении. Дальше система отвечает юзеру ссылкой. Игра открывается во встроенном браузере.
Теперь вы знаете основные кнопки BotFather и настройки для управления ботами. Чтобы наш ChatLabs_bot заработал полноценно, необходимо взаимодействовать с Telegram Bot API и писать код.
Забирай бесплатный чек-лист
«ТОП-10 ошибок
при создании Чат-бота»
Источник: chatlabs.ru
Бот для борьбы со спамом в Telegram на Golang
Решением стало написание свое бота, который задавал вопросы по типу:
Пользователю нужно ответить правильно, другие сообщения будут удаляться
Как добавить бота в чат?
- Добавляете бота в чат:
- После этого добавляете бота как админа в настройках чата:
- Даете боту права доступа на удаление сообщений и бан пользователей:
Код
Для работы с сообщениями в телеграм я решил использовать библиотеку tucnak/telebot с которой я уже работал раньше и которая кажется мне весьма удобной
Для начала надо настроить и запустить нового бота:
В импорты нужно добавить:
import ( tb «gopkg.in/tucnak/telebot.v2» )
И таким образом запускается наш бот
// initialize bot b, err := tb.NewBot(tb.Settings< Token: «YOUR_TOKEN», Poller: , >) if err != nil < fmt.Printf(«error while initializing bot, %v», err) >
Для того чтобы отследить когда новый пользователь зайдет в чат, нужно добавить отлавливание этих событий:
b.Handle(tb.OnUserJoined, UserJoined(l, b, memoryStorage))
А вот так выглядит сама функция UserJoined :
func UserJoined(l *zap.SugaredLogger, b *tb.Bot, s data.Storage) func(m *tb.
Message) < return func(m *tb.Message) < r := rand.New(rand.NewSource(time.Now().
UnixNano())) // generating two random small number firstNumber := r.Intn(4) + 1 secondNumber := r.
Intn(4) + 1 fistNumberInWords := ntw.IntegerToRuRu(firstNumber) secondNumberInWords := ntw.
IntegerToRuRu(secondNumber) username := getUsername(m.Sender) welcomeMessageText := getWelcomeMessageText(username, m.Chat.
Title, fistNumberInWords, secondNumberInWords) welcomeMessage, err := b.Send(m.Chat, welcomeMessageText) if err != nil < l.
Error(«error while sending welcome message», err) return > s.Add(m.Chat, m.Sender, data.
InfoWelcomeMessage: welcomeMessage, RightAnswer: firstNumber * secondNumber>) // Goroutine to delete message after 2 minutes // and block user if he or she still in the list go checkAndBanUser(l, b, welcomeMessage, s, m, username) > >
Она генерирут два случайных числа и конвертирует их в текст. Правильный ответ записывается в память. Затем в горутине ожидается 2 минуты от отправки сообщения, если пользователь так и не решил правильно ответ, то он блокируется и удаляется из чата
Вот так выглядит код для проверки ответа пользователя:
func Text(l *zap.SugaredLogger, b *tb.Bot, s data.Storage) func(m *tb.
Message) < return func(m *tb.Message) < info, ok := s.Exist(m.Chat, m.
Sender) if !ok < return > if m.Text != strconv.Itoa(info.RightAnswer) < err := b.
Delete(m) if err != nil < l.Errorf(«error while deleting (spam) user message: %v», err) > return > // in case of correct answer: s.Remove(m.
Chat, m.Sender) // Correct! Tell us about yourself approveMessage, err := b.Send(m.Chat, «Верно!
Расскажите нам о себе «) if err != nil < l.Errorf(«error while sending: %v», err) > go deleteWelcomeMessages(l, b, m, approveMessage, info.
WelcomeMessage) > >
Итог работы бота
По итогу бот очень успешно банит других ботов, не давая им написать сообщение с рекламой. Никто не переводит сообщения на английский язык и поэтому не знает что именно нужно делать. Таким образом пока получается блокировать всех ботов, хотя раньше с другими анти-спам ботами 50% просто решали капчу и писали спам
Исходный код
Исходный код, который деплоится затем на сервер вы можете найти тут:
Вы можете предложить свои изменения и улучшения, код открытый
После мержа код автоматически деплоится в продакшен (если билд пройдет успешно)
Источник: blogpavel.com