Работающий Telegram-бот, который задаёт клиенту твои 3-5 вопросов и присылает тебе заявку одним сообщением, а токен лежит только в файле .env.
Задача
Онур обслуживает кондиционеры в Анталье. Летом заявки идут отовсюду: звонки, Instagram, WhatsApp. Половина приходит без адреса или телефона. Ему нужен бот: клиент жмёт «Старт», отвечает на четыре вопроса (имя, телефон, район, что случилось), и Онур получает готовую заявку в Telegram.
Почему не WhatsApp. Для WhatsApp-бота нужна WhatsApp Business Platform от Meta. По официальной документации для старта понадобятся аккаунт разработчика Meta, бизнес-приложение, бизнес-портфолио, системный пользователь с отдельным токеном и правами. В примере из документации первое сообщение бизнес отправляет шаблоном, свободные сообщения можно слать в течение 24 часов после ответа клиента, а временный тестовый токен быстро истекает. Для первого бота это слишком много шагов. В Telegram бот создаётся прямо в мессенджере, а к WhatsApp можно вернуться позже.
Словарик.
- Токен бота: пароль, которым программа управляет ботом. Кто знает токен, тот пишет от имени бота и читает его сообщения.
- Переменная окружения: настройка, которую программа читает при запуске. Токен хранится в ней, а не в коде. На компьютере для этого служит файл
.env, на сервере настройки сервера. .gitignore: список файлов, которые git не сохраняет. В нём обязательно должен быть.env.- chat_id: номер твоего чата. По нему бот знает, кому пересылать заявки.
Шаги
Создай бота. В Telegram найди официальный @BotFather, отправь
/newbot, задай имя и адрес (username). Адрес: 5-32 символа, только латиница, цифры и_, и он должен заканчиваться наbot, напримерonur_klima_bot. BotFather пришлёт токен. ⚠️ Токен не вставляй ни в Claude Code, ни в чат с Claude, ни в мессенджеры, ни на скриншоты. Сохрани его в менеджере паролей.Создай папку
onur-bot, открой её в Claude Code и дай задачу по шаблону ниже.Запрети Claude читать
.env. Одной просьбы мало, нужна настройка. Попроси: «создай.claude/settings.jsonс запретом читать.envи.env.*». В документации есть пример:"permissions": { "deny": ["Read(./.env)", "Read(./.env.*)"] }. Открой файл и убедись, что запрет там есть.Впиши токен сам. Claude создаст образец
.env.exampleсо строкойTELEGRAM_BOT_TOKEN=. Скопируй его в.env, открой в Блокноте или TextEdit, вставь токен после=и сохрани.Узнай свой chat_id. Попроси команду
/myid: бот ответит тебе номером чата. Впиши его в.envкакOWNER_CHAT_ID. Потом пусть Claude закроет эту команду для всех, кроме тебя.Запусти и проверь. «Запусти бота и скажи, как остановить». С компьютера бот работает в режиме опроса (long polling): сам спрашивает у Telegram новые сообщения. Выключил компьютер, и бот замолчал. Чтобы он работал круглосуточно, нужен сервер (урок 4.5). Проверь с другого телефона: пройди анкету, введи неверный телефон, отправь пустой ответ, нажми «Старт» дважды.
Уведомление о данных. Имя, телефон и адрес это персональные данные. По KVKK (статья 10) при сборе человека уведомляют: кто собирает данные, зачем, кому они передаются, на каком основании собраны, какие у него права. Пусть бот перед первым вопросом показывает короткий текст со ссылкой на полный (aydınlatma metni). Текст проверяет юрист (урок 4.6).
Коммит и проверка утечки. «Проверь, что
.envв.gitignoreи токена нет ни в одном коммите». Если токен утёк, сразу получи новый в @BotFather командой/tokenи замени его в.env(и на сервере).
Шаблон
Я [имя], [дело, город]. Не программист, объясняй просто.
Задача: Telegram-бот для заявок.
- По «Старт»: короткое уведомление о персональных данных и ссылка [ссылка].
- Вопросы по очереди: [имя / телефон / район / проблема / удобное время].
- Телефон проверять на формат +90, пустые ответы не принимать.
- В конце поблагодарить и сказать: [что будет дальше].
- Заявку одним сообщением отправить владельцу в OWNER_CHAT_ID.
Безопасность:
- токен в TELEGRAM_BOT_TOKEN, chat_id в OWNER_CHAT_ID, обе из .env;
- создай .env.example с пустыми значениями, .env добавь в .gitignore;
- .env не читай и не открывай, его заполню я;
- в логах нет токена и полных телефонов;
- от спама: не больше [N] заявок от одного человека в час.
Язык бота турецкий, коротко и дружелюбно.
Сначала план и выбор библиотеки с объяснением, жди «ок».
В конце: как запустить, остановить, проверить. Git-коммит.
Выпиши 3-5 вопросов, которые ты на самом деле задаёшь каждому новому клиенту, и собери по шаблону бота с этими вопросами. Токен впиши в .env сам. Затем с другого телефона пройди анкету трижды: нормально, с неверным телефоном и с пустым ответом.
Заявка приходит тебе в Telegram одним сообщением со всеми ответами, а неверный телефон и пустой ответ бот не принимает. Команда проверки показывает, что .env в .gitignore, и токена нет ни в коде, ни в коммитах, ни в переписке с Claude.
- Порядок создания бота: @BotFather, папка, запрет читать .env, токен вписываешь сам
- Шаблон задачи на бота с блоком безопасности
- Правило: токен не попадает ни в чат, ни в код, ни в коммиты
- Действие при утечке: новый токен через /token
Сегодня выпиши 3-5 вопросов, которые ты задаёшь каждому новому клиенту, и создай бота в @BotFather. Токен сразу сохрани в менеджере паролей, а шаблон задачи в заметку «Мои запросы».
Источники
- Telegram Bot Features: BotFather (core.telegram.org):
/newbot, правила username,/tokenпри утечке, «Keep your token secure» (проверено 27.10.2026) - Telegram Bot API (core.telegram.org): токен у каждого бота, getUpdates и webhook взаимоисключающие, только HTTPS
- WhatsApp Business Platform: Get started (developers.facebook.com): требования для старта, шаблоны, токены
- Settings (code.claude.com): запрет
Read(./.env),.claude/settings.json; приложение читает те же файлы настроек - 6698 sayılı KVKK (mgm.adalet.gov.tr): статья 10
- kvkk.gov.tr: официальный сайт Kurum