Решением стало написание свое бота, который задавал вопросы по типу:
Пользователю нужно ответить правильно, другие сообщения будут удаляться
Как добавить бота в чат?
- Добавляете бота в чат:
- После этого добавляете бота как админа в настройках чата:
- Даете боту права доступа на удаление сообщений и бан пользователей:
Код
Для работы с сообщениями в телеграм я решил использовать библиотеку 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
Боты в Telegram и как они работают
Telegram быстро набрал популярность после своего запуска — еще бы, бесплатный мессенджер без рекламы, который к тому же шифрует данные своих пользователей. Кроме того, он предлагает огромные возможности для создания и настройки автоматизированных помощников — ботов. В этой статье мы рассмотрим, что из себя представляют боты в Телеграм, зачем они нужны, как их создать и запустить
Содержание
Что такое бот для Телеграм
Телеграм-бот — это программа, которая в ответ на сообщения пользователя выполняет определенные действия, на которые она запрограммирована. Например, вы можете запрограммировать бота реагировать на приветствия, и когда пользователь напишет боту: «Привет!», тот ответит и в свою очередь поздоровается заготовленным сообщением.
Боты широко используются для продвижения каналов и пабликов, для улучшения посещаемости канала. Хороший бот способен привлечь новую аудиторию в ваш блог.
Что может делать Телеграм-бот
Конечно, если бы боты просто однотипно отвечали на реплики юзеров, они были бы не такими интересными. Умелые программисты могут настроить бота так, что тот будет:
- составлять персональную ленту новостей по запросам пользователя;
- находить фильмы, музыку и игры по небольшим подсказкам;
- скачивать медиафайлы и преобразовывать их;
- развлекать прохождением тестов и квиз-опросов;
- выполнять мелкие функциональные задачи: находить трек по обрывку песни, ставить напоминалки и будильники, сохранять списки;
- помогать управлять каналом — такие боты позволяют администраторам популярных каналов тратить меньше времени на управление и больше внимания уделять подбору контента.
И это далеко не все! Фактически бот может выполнять любые задачи по поиску и анализу информации.
Рассмотрим основные виды ботов в Телеграме, разбив их по назначению:
Примеры ботов для Телеграм
Разберем несколько примеров популярных ботов, которые выполняют самые разные задачи.
Если вы посмотрели ролик на Ютубе и захотели скачать его аудиоверсию, вы можете воспользоваться этим ботом. Бот скачивает аудиодорожку из видео, ссылку на которое вы пришлете, а затем отправляет вам в чате ссылку на скачивание аудио.
Этот бот похож на предыдущий, но он работает с бо́льшим количеством форматов: вы можете скачивать не только аудиодорожку, но и само видео, а также сториз и фото из Инстаграма*, клипы из ТикТока и многое другое. Бот работает практически со всеми популярными соцсетями и позволяет загружать из них любой медиаконтент без потери качества.
Этот бот будет уведомлять вас при выходе новой серии вашего любимого сериала. Отметьте, какие сериалы вы хотите отслеживать, и бот будет присылать вам сообщение в чат, когда выходит новый эпизод. Бесплатно можно отслеживать до трех сериалов одновременно.
Если вам важно отслеживать курсы валют, стоимость золота и нефти, то подобный бот будет вам полезен. Он отправляет текущие показатели по запросу, но может и просто ежедневно присылать обновленные данные, держа вас в курсе событий.
Бот анализирует предложения авиакомпаний и агрегаторов, а затем выдает вам самые дешевые авиабилеты из найденных.
Тот же Shazam, только для Телеграма. Проиграйте боту отрывок мелодии, и он распознает ее, а затем пришлет ссылку на прослушивание полной версии.
Как работает Телеграм-бот
Теперь, когда мы узнали, что программы умеют делать, давайте разберемся, как работают боты в Телеграме.
Упрощенно работа бота представлена так:
- Пользователь делает запрос через Телеграм.
- Запрос отправляется на сервер, где хранится код бота — его «мозг».
- Бот обрабатывает запрос в соответствии со своей программой.
- Когда ответ готов, бот отправляет его с сервера в Телеграм, адресуя пользователю.
Эта цепочка обычно выполняется за доли секунд, но бывают и исключения.
Как пользоваться ботом в Телеграме
Бот — это автоматизированный «пользователь», так что вы можете либо открыть чат с ним, либо добавить его в общий разговор, как обычного человека.
У каждого бота есть свои команды, с которыми он вас сам познакомит при запуске. Чтобы командовать ботом, нужно писать эти команды в строке ввода сообщения через слэш (/), например, «/hello», а затем отправлять их. Одна опечатка — и команда уже не будет работать.
Некоторые боты оснащены готовыми кнопками для управления. Вы можете пользоваться ими, а можете писать команды вручную — разницы не будет.
Бот может быть добавлен в групповой чат. В этом случае все участники чата могут обращаться к боту и управлять им, если иное не указано администратором чата. Перед тем как запустить бот в Телеграме в групповой чат, убедитесь, что он не вредоносный!
Создаем своего бота
Вы наверняка уже воодушевились и хотите создать своего первого бота, который будет делать всякие крутые штуки. Но не обнадеживайтесь — без навыков программирования вы сможете создать только очень простенького бота, который будет реагировать на четкие команды пользователя и выполнять простые действия.
Тем не менее, даже без навыков можно создать бота для развлечения вашей аудитории или продвижения. Давайте рассмотрим, как создать и как управлять ботом в Телеграме.
Как получить токен
- Напишите /newbot. Это команда создания бота.
- Придумайте и напишите имя для бота. Название бота может быть абсолютно любой комбинацией символов на латинице, цифр, дефисов и подчеркиваний, но заканчиваться оно должно на «bot».
- При желании добавьте аватарку бота или пропустите этот шаг.
Что дальше
Если же вы хотите сделать уникальный, многофункциональный и полезный сервис, вам стоит обратиться за помощью к IT-специалистам — сейчас многие программисты подрабатывают, создавая продуманных и качественных ботов. Самостоятельное обучение этому делу отнимет очень много времени, но если вы желаете этим заняться, то в сети есть много материалов о создании ботов при помощи программирования на разных языках, а сам навык может стать хорошим способом заработка. Если вы научитесь, как управлять ботом в Телеграм и программировать его, у вас будет много клиентов.
*Instagram принадлежит Meta, признанной экстремистской организацией и запрещенной на территории России.
- ТОП-3 Телеграм-бирж
- Требования к форматам рекламы в Instagram
- Заработок в Телеграме: основные способы
- Как проводить аналитику на канале Телеграм
Оцените пост:
3,33 (49)
Источник: ru.epicstars.com