Lil-hack/click-bot-telegram
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
- Скачиваем проект с гитхаба. Запускаем проект в любой среде разработки для python (Например: PyCharm).
- Среда разработки автоматически подгрузит необходимые библиотеки с файла requirements.
- Заменяем Token от BotFather в файле main.py
- Запускаем проект
- Со второго аккаунта нажимаем /start и пишем слово «admin»
- Выключаем проект и заполняем admin_id и config_id в файле main.py
- Запускаем проект и с аккаунта пользователя нажимаем старт />
- Профит
Тестирование и графики
Графики сделаны по выборкам из
100 запросов. И представлены средние показатели выборки.
В качестве базы данных на стороннем сервере использовался PostgreSQL на Amazon RDS с минимальными характеристиками.
При одном миллионе пользователей время бэкапов становится проблемой.
Размер бэкапа полностью зависит от вашей модели данных, в моем случае при одном миллионе пользователей получилось данных на 21 мегабайт.
Данный метод хранения данных имеет смысл для проектов до миллиона пользователей. То есть для прототипа или личного стартапа данный способ имеет право на жизнь.
В итоге мы получили полностью автономного кликера, независящий от удаленных баз данных.
Вот выше описанный проект, развернутый на heroku: @Clicker_fast_bot
Так же я реализовал более сложный проект с данной идеологией: @Random_friend_bot
Инструкция: Как создавать ботов в 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’ (или любой другой метод, используемый ботом).
15 сервисов для простого создания ботов в Telegram
В статье я разобрала все существующие конструкторы по созданию чат-ботов для мессенджера.
Не стану писать типичную вводную часть для начала таких подборок про «что такое боты», «почему боты популярны», «для чего боты нужны» и так далее, поэтому перейдём к делу.
Я решила не останавливаться на тех конструкторах, которые нашла в прошлой статье, и найти вообще все сервисы по созданию ботов в Telegram. Если окажется, что не учла какие-либо проекты или сделала не совсем верное описание, пишите в комментарии — добавлю или исправлю.
Все сервисы расположены в том порядке, в котором на них наткнулась при поиске.
Manybot — личный кабинет сервиса представлен в виде бота в Telegram. Конструктор позволяет создавать меню, подменю, форму обратной связи, подключать RSS-ленты и делать рассылки по всем подписанным пользователям.
Стоимость: бесплатно (с рекламой, где создан бот). Поменять тариф или отключить рекламное сообщение нельзя.
Мобильная версия: есть. Сервис работает через Telegram.
Личный опыт: сервис идеально подходит для небольших проектов, но создавать меню более четырёх уровней через интерфейс бота становится сложно. Помимо этого, бот долго отвечает (или не отвечает совсем).
Сервис не обновляется с 2015 года.
Botobot — узконаправленный сервис, который позволяет создать бот-магазин. Загрузка товаров происходит через Excel. Можно делать рассылки новостей магазина, отсутствует настройка меню и вообще сделать что-то кроме магазина (или как-то кастомизировать магазин) не представляется возможным.
Стоимость: бесплатный тариф (бессрочно, ограничение 20 товаров, рекламное сообщение сервиса). Минимальный платный тариф — 640 рублей в месяц.
Мобильная версия: есть.
Личный опыт: сильно ограниченный сервис в плане дополнительных возможностей и настроек. Надеялась на оплату непосредственно через Telegram, но такую функцию не обнаружила. Есть возможность на платном тарифе подключить CRM или настроить API.
Bottap — конструктор со стандартными возможностями: можно создать меню, формы обратной связи, интернет-магазин, онлайн-запись, делать простые рассылки.
Стоимость: бесплатный тариф (бессрочно, рекламное сообщение сервиса, нет интернет-магазина и онлайн-записи). Минимальный платный тариф — 390 рублей в месяц.
Мобильная версия: есть.
Личный опыт: сервис с приятным и вполне понятным личным кабинетом. Подходит для средних (по глубине вкладок) ботов. При создании больших ботов появились сложности (исходя из реализации просмотра команд в конструкторе).
Присутствуют странности: у некоторых блоков нет кнопки «Удалить» (блок обратной связи), кнопки в меню нельзя расположить по желанию пользователя, нельзя изменить сообщение, отправляемое с клавиатуры, и прочее.
Chatforma — интересный сервис, имеется вся необходимая функциональность: форма ввода, интернет-магазин, разные опросы, рассылки и всё то, что должно быть (не нашла только общение через бота). Имеется возможность создать теги для распознавания команд. Большое количество сервисов для интеграции.
Стоимость: триал-версия (15 дней с полной функциональностью). Минимальный платный тариф — 4000 рублей за два месяца, дальше по 2000 рублей в месяц (странно, но как-то так).
Мобильная версия: нет.
Личный опыт: большой сервис с активной поддержкой сообщества (видеоуроки, конкурсы и прочее). Содержит в себе необходимую функциональность для создания серьёзного бота. Простой и понятный личный кабинет. Нет чего-то особенного (разве что опросы), но есть всё необходимое.
Botmaker — сервис со стандартной функциональностью: отправка сообщений разного вида, формы ввода, рассылки и. всё, но с парой интересных модульных решений, таких как: бронирование, запись на услугу, вызов персонала, приглашение и несколько других.
Стоимость: бесплатный тариф (отдельной страницы с информацией о тарифах нет, поэтому в чём конкретно ограничения, так и не поняла, недоступны модули). Минимальный платный тариф — 29 500 рублей (нет, не опечатка).
Мобильная версия: нет.
Личный опыт: очень странная реализация конструктора, причём их несколько кардинально разных (есть конструктор для клавиатуры-меню и ещё конструктор Smart Sale Tree). Интересные модульные решения, но не получилось посмотреть в работе, так как не смогла опубликовать модульные кнопки из-за постоянно вылезающей ошибки, с которой не поняла как справиться.
Puzzlebot — мощная платформа, которая подходит для конструирования сложных ботов, а также для работы с каналами и группами (постинг, статистика, модерация и прочее). Сервис с полным перечнем обычных и большим количеством необычных возможностей (гибкие рассылки, приватные команды, юзерботы для полноценной статистики).
Стоимость: бесплатный тариф (бессрочно, есть рекламное сообщение сервиса). Минимальный платный тариф — 490 рублей в месяц.
Мобильная версия: есть.
Личный опыт: самая удобная мобильная версия личного кабинета из всех представленных конструкторов в статье, интуитивно понятный интерфейс, активная поддержка и разносторонность в возможностях (про группы и каналы).
В нём есть все необходимые функции, такие как: создание категорий из пользователей с разными правами, возможность делать рассылки сразу по всем подключенным каналам и чатам, изменение отправленных сообщений, создание приватных команд и другие.
Botmother — платформа с множеством различных функций (если получится разобраться, как их использовать) и интеграциями. Длинная «палитра» блоков для конструктора, диалоги с пользователем, рассылки и не только.
Стоимость: бесплатный тариф (бессрочно, нет рекламного сообщения сервиса, из вкладок доступен только конструктор с ограничениями). Минимальный платный тариф — 1499 рублей в месяц.
Мобильная версия: нет.
Личный опыт: безусловно сильный сервис, но как я уже писала в предыдущей статье (в которой разобрала плюсы и минусы), конструктор показался сложен в освоении из-за обилия функций и мессенджеров, которые можно подключить (что-то доступно для одного, но недоступно для другого).
Интерфейс личного кабинета сильно напоминает Aimylogic (про него ниже).
Socialbot — конструктор, который умеет выводить информацию и отображать клавиатуру. Помимо этого, есть восемь модулей, в числе которых: вопросы, общение с пользователями, информация о новинках с сайтов Lostfilm и Seasonvar, простой заказ и гадание таро.
Стоимость: бесплатный тариф (бессрочно, нет рекламного сообщения сервиса, есть ограничение по модулям). Минимальный платный тариф — 500 рублей в месяц.
Мобильная версия: нет.
Личный опыт: слабый по возможностям и по удобству в работе сервис.
Сервис не обновляется с 2016 года.
Aimylogic — очередной отличный сервис по созданию всеми привычных «текстовых» ботов и непривычных ботов для обзвонов (для платного тарифа). Интересные, но сложные для освоения функции, такие как: «интенты» и «сущности». Подойдёт для создания ИИ и захвата мира.
Стоимость: бесплатный тариф (бессрочно, нет рекламного сообщения сервиса, есть ограничение по функциям и по количеству пользователей). Минимальный платный тариф — 5900 рублей в месяц.
Мобильная версия: нет.
Личный опыт: интерфейс конструктора выглядит похожим на Botmother (но Aimylogic намного старше, а следовательно, можно предположить, кто на кого похож). В нём нет привычных функций: корзина, создание инлайн-клавиатуры, отправки файла, но можно создать бота, который будет угадывать то, о чём ему пишут.
Стоимость: бесплатный тариф (ограничение 50 исходящих сообщений в сутки, нет рекламного сообщения сервиса). Минимальный платный тариф — 499 рублей.
Мобильная версия: нет.
Личный опыт: очень долго грузит, часто натыкалась на ошибки «сервер не отвечает» — протестировать не удалось.
Telegrambot.biz — простой сервис для создания простых ботов, которые могут присылать разного рода информацию (текст, изображения, документы) с возможностью прикреплять клавиатуру.
Стоимость: бесплатно (нет рекламного сообщения сервиса).
Мобильная версия: есть.
Личный опыт: простой бесплатный сервис по созданию очень простых ботов.
Flow XO — насыщенная функциями платформа для создания ботов под бизнес-задачи. Включает в себя более чем 100 различных интеграций. Конструктор подключается к самым известным и популярным сервисам.
Стоимость: бесплатный тариф (бессрочно, нет рекламного сообщения сервиса, есть ограничение на пять диалогов). Минимальный платный тариф — $19 (1235 рублей) в месяц.
Мобильная версия: есть.
Личный опыт: совершенно непростой, полностью англоязычный сервис. Большая возможность для разработчиков: подключать API, настраивать веб-хуки, интеграции и прочее. Для команд можно задавать переменные, ставить фильтры срабатывания и создавать шаблоны для «распознавания» сообщений.
Telebot — сервис позволяет создавать ответы на команды с обычной и инлайн-клавиатурой, а также форму для ввода текста.
Стоимость: триал-версия (десять дней). Минимальный платный тариф — $20 (1300 рублей) за три месяца.
Мобильная версия: нет.
Личный опыт: непривлекательный интерфейс личного кабинета, совершенно обычная функциональность.
Info bot — с этим конструктором можно создать бота для отправки сообщений, умеет отображать клавиатуру, можно просматривать диалог с пользователем и делать рассылки.
Стоимость: триал-версия (десять дней). Минимальный платный тариф — 3000 рублей в месяц.
Мобильная версия: нет.
Личный опыт: создавать команды пришлось с использованием интуиции, так как отсутствуют подсказки и плейсхолдеры. Не во всём удалось разобраться. Внешний вид и возможности конструктора примитивны.
Ebot one — «редактор ботов позволяет без навыков программирования спланировать структуру бота. Если же навыки программирования имеются — логику можно сделать намного сложнее, а бота интереснее и полезнее». (Текст из группы во «ВКонтакте».)
Стоимость: бесплатный тариф (ограничен одним ботом и бесплатной функциональностью). минимальный платный тариф — 200 рублей в месяц.
Мобильная версия: нет.
Личный опыт: не смогла разобраться.
Последнее обновление сервиса было 8 сентября 2018 года.
Конструкторов для создания бота в Telegram много, но действительно хороших мало. Из приведённого выше списка могу отметить наиболее интересные платформы:
По этим пяти сервисам в ближайшее время напишу подробный сравнительный обзор. Пишите в комментариях, какие критерии для сравнения вам особенно интересны.
Если вы знаете ещё какие-либо проекты или считаете, что я сделала не совсем верное описание, то пишите в комментарии — добавлю или исправлю.
И какой смысл от таких сервисах? Создать бота "онлайн чат". На большее, такие сервисы неспособны. Вот когда какой-то сайт сможет создать что-то типа такого https://t.me/tegrocash_bot будет другой разговор.
5к – нормальная цена? Как вам?
P.S. Теперь все статьи так проверять, штоле.
Это нативка своего сервиса, ненавязчиво вшитая в сравнение с конкурентами? Или какой выхлоп публиковать купленный текст?
Конструкторы это круто, но для серьезных проектов они не подойдут.
1. Там есть реклама (не у всех)
2. Функционал ограничен
3. Ещё и платные.
Создавать ботов (таких как делают на этих сервисах)не так сложно, и хостить можно бесплатно.
Не совсем согласна) Создавать ботов не так сложно, если умеешь программировать (так можно сказать и про сайты, и про различный софт и так далее), а если не умеешь программировать, то единственный вариант воспользоваться сервисом-конструктором. Либо учиться программировать 🙂
Самое интересное что буквально недавно узнал новый сервис: Integromat, любые сложные сценарии и интеграции легко и просто. Учитывая мой опыт с Corezoid, могу сказать что это реально легко.
Спасибо за подборку!
Здорово, что сделали такой обзор!
А Вам не попадался конструктор ботов с автозаполнением документов? Задача: пользователь отвечает на вопросы, на выходе получает заполненную форму документа
Спасибо! К сожалению нет, задача слишком "узкая", подобного бота не встречала.
Могу помочь с этим 🙂
Ну, чисто теоретически, у того же botmother есть возможность работать с get\post запросами, и, судя по всему, если сделать какой-нибудь бекенд для генерации документов — то всё получится. С другой же стороны, если уже где-то крутится бекенд для этой штуки, то ничего не мешает там же поставить своего бота, благо сделать его стоит не дорого, и уже никак не зависеть от сторонних сервисов.
На Python такое пишется очень быстро)
Жаль, что я давно ничего не писал, так бы помог.
Можете посмотреть наше решение flexbby workflow, flexbby.com/ru/ это полноценный инструмент с workflow back end templating pdfing и т.п. есть расширение DialogForce для создания ботов под любые каналы. Оставляйте заявку обсудим задачу. Думаю такой бот очень легко настраивается.
Это можно сделать в Chatforma, используя интеграцию с Google Doc, например. Они даже записывали простой видеоурок, как это сделать
На конструкторе Чатформа эта задача реализовывается. На обучающем портале даже урок есть на эту тему.
Для ВК бы ещё подборку
Для ВК есть подборки, а вот для телеграма найти не могла) Botmother из подборки может работать в тг, вк, фб и других соцсетях. Еще могу посоветовать https://robochat.io/ сервис только для вк.
Aimylogic в ВК тоже работает, и в Facebook, и во всех ассистентах, и даже на английском 🙂
Я создаю ботов на платформе salebot.pro. Не выключили в этот список, хотя там функционал довольно хороший.
Спасибо — отличный обзор! Помог определиться с выбором (пробным).
Для следующих разборов можно попробовать итоговое сравнение в виде таблицы.
В таблице 10-15 типовых функций сравниваемых сервисов (что есть, чего нет, цифры и пр.).
Еще раз спасибо.
Благодарю за прочтение и предложение, постараюсь сделать Рекомендую прочитать более актуальную статью: https://vc.ru/services/110661-28-servisov-po-sozdaniyu-chat-botov-v-telegram
Комментарий удален модератором
Благодарю! Обязательно посмотрю.
Да, могут.
У меня на FlowXO такой функционал в боте реализован.
Для телеграмм более-менее картина ясна. Как быть с viber и Facebook messenger?
У нас два бота в Telegram работают на Botmother. Первый — бот-бухгалтер @iloveipbot (https://tele.click/iloveipbot), он отправляет и получает различные данные по API (рассчитывает налоги и взносы ИП, формируем платёжки для оплаты налогов и взносов, декларацию по УСН, определяет реквизиты ИФНС по адресу и геолокации и т. д.). Второй — ИФНС бот @ifnsbot (https://tele.click/ifnsbot), он формирует различные документы для ИП (заявление о внесении изменений в ОКВЭД, заявление о прекращении ИП). Оба бота связаны с нашим бэкендом.
В Ботмаме есть возможность присваивать разные ярлыки пользователям и по ним делать рассылку (это к вопросу о возможности отправлять рассылки по разным группам людей из предыдущей статьи). Также можно ограничить доступ к разделам разным пользователям, например, по паролю или по тому же ярлыку. У нас так работает оплата в боте. После того, как человек оплатил подписку, ему присваивается ярлык с полным доступом ко всем экранам.
Ещё у Ботмамы есть документация, где описаны все виды доступных компонентов. Поэтому да, на первый взгляд, конструктор кажется сложным, но функционал, который в нём есть, перевешивает любые минусы.
Как сделать кликер в телеграмм боте?
я использую python и pyTelegramBotAPI(telebot) Подскажите пожалуйста как можно сделать кликер в телеграмм боте, что при нажатии кнопки и(или) при вводе сообщения увеличивался счёт пользователя, главное что бы он сохранял результат
Не уверен, что кликер в телеграмме как-либо реализуем. При каждом клике сервер должен его обрабатывать, а учитывая что пользователь бота будет не один, это колоссальная нагрузка на сервер
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2022.10.4.38014
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.