Как сделать капчу в телеграмм боте
Всем привет. Этот пост, как вы поняли, будет про мои разработки для Телеграма. Да, есть продукты, которые делаю на заказ, есть один вообще под NDA, а есть и мои проекты, которые делаю или для заработка или просто так, для людей, бесплатно и без рекламы.
У меня в портфолио уже более 20 ботов, и каждый раз я берусь за все более сложные проекты. Да, все этот сделал за последний год. Движусь так сказать.
Итак, к моим бесплатным и безрекламным проектам у меня относится и мой новый бот для групп в телеграмме — @defendy_bot, он и модератор и помогатор защититься от постоянного спама, а еще позволяет использовать систему репутации и много чего еще. Плюс, я постоянно добавляю в него новые функции. Не бот, а конфетка!
- На базовую разработку и запуск проекта мне потребовалось около 5 рабочих дней.
- Раз в неделю я выкатываю обновление, добавляющее новые функции / улучшения
- В боте нет и не будет рекламы, это отличительная особенность и фишка бота, финансы мне тут неинтересны, мне гораздо интереснее, чтобы люди получали максимум пользы от бота.
- Я проанализировал всех конкурентов, и стараюсь сделать проект, который предложит больше, и лучше по качеству, и бесплатно.
- Я открыт к диалогу, и прислушиваюсь к фидбеку по боту (если у вас есть по нему замечания/предложения — смело пишите тут в комменты или в контактах бота).
Первая цель для моего бота в цифрах — 100 подключенных групп, и охват в 10 000 человек.
Этот пост я буду обновлять, по мере добавления все новых и новых функций в бота. Итак, что сейчас реализовано в нем:
Чтобы подключить бота к группе:
Настраивать бота и вводить команды нужно прямо в группе и только администратором группы. В ином случае бот не даст доступ к управлению.
Так выглядит работа системы репутации
В планах по боту еще более 20 различных команд и функций, мультиязычность, все это буду постепенно по мере сил внедрять, а сервер, на котором размещается бот — оплачен на 4 года вперед. Если брать глобальные планы, то тут конечно — стать ботом номер 1 для групп. Буду к этому идти.
Это мой бот, а я всегда трепетно отношусь к своим разработкам и слушаю людей — если возникла какая либо проблема или у вас есть что сказать — пишите, всегда рад обсудить все, что касаемо бота.
Т.к бот всегда будет бесплатным и без рекламы, финансам тут браться неоткуда. Поэтому я подумаю, стоит ли покупать рекламу. Все же, он нужен именно админам групп, а не любому юзеру телеграмма. Посмотрим, можно ли без вложений, только лишь за счет лучшего продукта выехать. А если у вас есть предложения по его продвижению — пишите, обсудим.
На этом пока все, если у вас. есть группа в телеграмм — обязательно подключайте бота, это будет очень круто и я буду безмерно благодарен. А так же пишите в комментах, что стоило бы внедрить в него, ну и замечания быть может какие. Всем пока.
P.S Чуть не забыл, если нужно разработать бота, можете тоже обращаться.
Кстати, мы тут переделали Телеграмм-бота.
Можно потестировать бота по адресу:
Виолетта Морозова ответила Валерию
Валерий, ой. не всегда приходят сразу. а примерно последние пару недель авто выплаты вообще не проходят.
Спасибо что ответили Виктор нажимаю старт и все появляются три точки загрузки и так грузится постоянно именно сегодня до этого было просто замечательно
И много желающих капчить в телеге? Вот просто интересно, ради кого надо было испортить боты большинству капчеров?
Валерий, т.е. проблемы, возникшие с windows-ботом никак не связаны с телегой-ботом? Тогда почему они возникли аккурат в то время, когда наладили телегу-бот? Совпадение?
Shuxrat, у тебя скорость интернета на скриншоте 2,9 кб/с - это оооочень мало. Потому капчи у тебя и не загружаются. Нужно хотя бы 400 кб/с или 0,4 Мб/с
Вот такая ерунда
Игорь Молчанов
Игорь Молчанов
Если да, то нахрена в начале он пишет логин, если нет , то про какой ключ он пишет? И что это он на английском?
Игорь Молчанов ответил Елене
Елена, Ясно, гемор короче. Логин и пароль помню наизусть, а вот ключ нет. Значить не судьба там попробовать. Слишком ленивый, чтоб лазить в поисках ключа на сайте.
Марат Зиганшин
у меня капча тупит глюк)) вроде выбераю все картинки нажимаю подтвердить а оно пишет повторите попытку или всё далее и далее - ребята что за дичь с капчой? объясните пожалуйста у вас у всех есть такая проблема?
Марат Зиганшин ответил Николаю
Марат, смотри, рекапчу создает гугл для защиты сайтов от спама и авторегистраций и никак не для того, чтобы на рекапче зарабатывали. Чем больше ты вводишь рекапчу, тум больше гугл подозревает, что ты робот и дает тебе рекапчу всё сложнее и сложнее. Потому нужно менять иногда IP, заходить на сайты различной тематики, заходить в разные аккаунты Gmail и пользоваться почтой Gmail, а не просто входить и выходить. Т.е. разносторонне активничать в интернете.
Подскажите, кто сталкивался с вводом капчи при первом входе на канал либо в группу?
Как реализовать такое решение?
И видел ли кто-то примеры групп с такой возможностью?
Анастасия323:
Добрый день
Подскажите, кто сталкивался с вводом капчи при первом входе на канал либо в группу?
Как реализовать такое решение?
И видел ли кто-то примеры групп с такой возможностью?
Заранее спасибо)
Бота нужно писать
В канал никак, только если сделать его закрытым и внутри бота давать капчу вроде напишите сколько будет 20+30, если ответ верный бот берет ссылку из канала приватную и выдает юзеру, после вступления которого ссылка сбрасывается.
В чат довольно много таких ботов тот же комбот если не ошибаюсь, там надо нажать кнопочку мол не бот я.
Zareexx:
В канал никак, только если сделать его закрытым и внутри бота давать капчу вроде напишите сколько будет 20+30, если ответ верный бот берет ссылку из канала приватную и выдает юзеру, после вступления которого ссылка сбрасывается.
В чат довольно много таких ботов тот же комбот если не ошибаюсь, там надо нажать кнопочку мол не бот я.
Если в чат вступает по несколько десятков в секунду, то актуальность ссылки быстро пропадет, если она все время сбрасываться будет.
veleg:
Если в чат вступает по несколько десятков в секунду, то актуальность ссылки быстро пропадет, если она все время сбрасываться будет.
Ну как бы иначе никак, только если через юзер+ботапи реализовать систему инвайта. Гемор ещё тот, пройдите капчу в боте, если все ок, проверьте, что у вас не закрыты приглашения в чаты и вас пригласят. Но для канала такого не реализовать, либо делать внешний сайт прокладку, но тоже самое, что и с ботом получается
Telegram набирает популярность не только у пользователей, но и у разработчиков. Многие создают там свои каналы и ботов. В этой статье мы создадим приватный канал с фасадом для него — ботом.
Содержание:
Возможности бота
Через бота можно будет:
Создание бота
Начнём с самого простого шага — создания бота в Telegram. Для этого достаточно написать команду /newbot боту по созданию других ботов BotFather и следовать инструкциям:
Также появится токен, который мы будем использовать для подключения к боту из своего приложения.
Бот для приватного канала с информацией о самых вкусных плюшечках и пирожочках создан. Далее создадим сам канал и добавим туда нашего бота в качестве администратора.
Создание базы данных
Для простоты решения поднимем PostgreSQLв docker-контейнере:
Контейнер запущен, БД готова к работе.
Для минимальной аналитики и контроля подписок нам хватит одной таблицы. Заполним её модель и далее в миграции lequibase создадим:
Создание бэкенда
Перейдём на Spring Initializr и сгенерируем каркас бэкенд-приложения. Достаточно выбрать следующие библиотеки:
Развернём сгенерированный проект в среде разработки и добавим туда зависимость для работы с Telegram:
Также добавим библиотеку для мапинга, которая нам пригодится при мапинге сущностей БД в REST-модели:
Создадим миграцию для таблицы, добавим описание подключения к БД и запустим приложение:
После успешного запуска приложения накатится миграция и создастся таблица:
Таблица создана, приложение успешно запустилось. Теперь можно приступить к описанию Data Access Layer. Для этого опишем сущность, репозиторий и сервис:
Подключение к API Telegram
Чтобы можно было получать данные из бота в наше приложение, достаточно унаследовать от абстрактного класса org.telegram.telegrambots.bots.TelegramLongPollingBot и реализовать три метода:
Добавим в application.yaml данные бота, которые получили от BotFather:
Реализуем поддержку 5 команд:·
Чтобы всеми этими командами было удобно пользоваться, реализуем их в виде кнопок, используя org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup.
Готово! Теперь бот умеет обрабатывать следующие команды.
Хочу демо-доступ на 3 дня.
После получения демо-доступа информация об этом сохраняется в БД. При повторном запросе на демо-доступ пользователю отобразится ошибка:
Если пользователи могут получать временный доступ, то появляется задача проверки истечения этого доступа. К сожалению, не получится создать планировщик, который будет раз в день отписывать пользователей с истекшим доступом. Поэтому надо реализовать поддержку ещё одной команды для чистки подписчиков.
Чтобы этой командой мог пользоваться только администратор, его Chat ID надо добавить в application.yaml. Далее этот идентификатор будет использоваться при проверке, от кого пришла команда и имеет ли этот пользователь права на выполнение этой команды.
Дополнительно к этому требуется реализовать команду выдачи полного доступа. Класс поменяется следующим образом:
Появилась обработка команд от администратора.
Таким образом, мы реализовали следующие возможности для пользователя:
В свою очередь, у администратора канала появились следующие возможности:
- проверить предоставляемые пользователем данные для полного доступа и выдать полный доступ;
- очистить канал от пользователей с истекшим доступом.
Для удобства развёртывания упакуем наше приложение в Docker и развернём. Добавим в build.gradle:
Далее выполним следующие команды для создания образа и запуска его в докере:
Создание фронтенда
После того, как мы создали handler для обработки команд бота, хочется визуально контролировать подписки и смотреть графики по приросту подписок в разрезе месяца. Для этого создадим отдельное приложение на React с использованием Ant Design. Выполним команду:
После этого у нас будет сгенерировано приложение с минимальной функциональностью. Однако требуется установить ещё несколько библиотек:
После этого основной компонент надо изменить на:
И добавить новый компонент:
Дополнительно к этому добавить функции для выполнения запросов:
Это личный проект, аутентификация зашита, можно с ней особо не заморачиваться. Также в бэкенд требуется добавить конфигурацию Spring Security:
А теперь для удобства упакуем и развернём UI в docker-контейнере. Для этого создадим DockerFile:
И выполним команды для сборки и развертывания:
Вывод
Используя Spring Вoot, React и Docker, можно быстро создать небольшую систему для контроля подписок и подписчиков на канале в Telegram. Исходный код двух приложений можно посмотреть здесь и здесь.
Читайте также: