Чтобы бот начал отправлять сообщения на телефон, сначала проверьте, что пользователь хотя бы раз нажал /start в диалоге с ботом — без этого Telegram Bot API не даст боту написать первым, и попытка отправки вернёт ошибку 403: Forbidden. Это самая частая причина, по которой свежесозданный бот «не работает», хотя токен и код написаны верно.
Задача «бот отправляет сообщения на телефон» решается несколькими способами: через Telegram-бота, через SMS-шлюз оператора или через push-уведомления. Каждый вариант имеет свои ограничения, стоимость и требования к настройке. Ниже разберём, как устроен каждый механизм, как поднять своего бота уведомлений и что проверять, если сообщения не доходят.
Какие бывают боты для отправки сообщений на телефон
Под «ботом, который пишет на телефон» обычно понимают один из трёх сценариев. Первый — бот в мессенджере (Telegram, WhatsApp Business API), который присылает уведомления в чат: о заказах, о событиях на сервере, о новых заявках с сайта. Второй — SMS-рассылка через шлюзы операторов связи, когда текст приходит как обычное текстовое сообщение. Третий — push-уведомления из мобильного приложения, где роль «бота» выполняет серверная логика.
Выбор зависит от задачи. Для личных уведомлений и мониторинга проще всего Telegram-бот: он бесплатен, создаётся за несколько минут и не требует договоров. SMS подходит, когда получатель может не пользоваться мессенджерами, но стоит денег за каждое сообщение и требует регистрации имени отправителя. Push-уведомления имеет смысл использовать, только если у вас уже есть собственное мобильное приложение.
- 📩 Telegram-бот — бесплатные сообщения, простая настройка через Bot API
- 💬 SMS-шлюз — доставка на любой телефон, но платно и с модерацией имени отправителя
- 🔔 Push-уведомления — только для владельцев собственного приложения
- 🤖 Боты в WhatsApp — через официальный Business API с модерацией шаблонов
Как создать Telegram-бота для отправки сообщений
Создание бота начинается с официального бота @BotFather в Telegram. Откройте диалог с ним и отправьте команду /newbot, затем укажите имя и уникальный username бота, заканчивающийся на bot. В ответ BotFather выдаст токен — длинную строку вида 123456789:AAEhBOweik6ad..., которая является ключом доступа к API.
Токен нужно хранить в секрете: любой, кто его знает, может отправлять сообщения от имени вашего бота. Если токен утёк, его можно перевыпустить командой /revoke у BotFather.
Дальше получателю нужно один раз написать боту (нажать /start), чтобы у бота появилось право отправлять ему сообщения. Узнать chat_id получателя можно через запрос к методу getUpdates — откройте в браузере адрес вида:
https://api.telegram.org/bot<ТОКЕН>/getUpdates
В ответе найдите поле "chat":{"id":... — это и есть числовой идентификатор чата. После этого отправка сообщения выполняется одним HTTP-запросом:
https://api.telegram.org/bot<ТОКЕН>/sendMessage?chat_id=<CHAT_ID>&text=Привет
☑️ Запуск Telegram-бота уведомлений
Отправка сообщений из скриптов и сервисов
На практике бот чаще всего нужен не для ручной отправки, а для автоматических уведомлений: о падении сайта, о новой заявке, о завершении резервного копирования. Для этого метод sendMessage вызывается из скрипта — на Python, Bash, PHP или любом другом языке, способном выполнить HTTP-запрос.
Пример на Python с использованием стандартных средств:
import urllib.request
import urllib.parse
TOKEN = "ВАШ_ТОКЕН"
CHAT_ID = "ВАШ_CHAT_ID"
text = "Сервер: резервное копирование завершено"
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
data = urllib.parse.urlencode({"chat_id": CHAT_ID, "text": text}).encode()
urllib.request.urlopen(url, data=data)
Если программирование не входит в ваши планы, существуют коннекторы без кода: связки через Zapier, Make (бывший Integromat) или встроенные уведомления сервисов мониторинга. Там Telegram подключается как готовый модуль — достаточно вставить токен и chat_id в настройки сценария.
SMS-боты: когда Telegram недостаточно
SMS остаётся востребованным каналом, когда получатель не пользуется мессенджерами или сообщение критично важно — например, коды подтверждения и оповещения от банков. Здесь «бот» — это программа, которая обращается к SMS-шлюзу (агрегатору) по API, а тот передаёт сообщение оператору связи.
Отличия от Telegram принципиальные. Каждое сообщение оплачивается, имя отправителя (альфа-имя) проходит модерацию у операторов, а содержимое рассылок регулируется правилами против спама. Для массовых рассылок требуется согласие абонентов на получение сообщений — это закреплено в законодательстве о рекламе и связи.
⚠️ Внимание: не используйте сомнительные сервисы «бесплатной SMS-рассылки» и SIM-боксы. Такие рассылки нарушают правила операторов, номера быстро попадают в блокировку, а отправитель рискует получить штраф за несанкционированную рекламу.
Сравнение способов доставки сообщений на телефон
Соберём ключевые различия в одну таблицу, чтобы было проще выбрать канал под свою задачу.
| Канал | Стоимость | Требования | Ограничения |
|---|---|---|---|
| Telegram-бот | Бесплатно | Токен, получатель нажал /start | Бот не может написать первым |
| SMS-шлюз | За каждое сообщение | Договор, регистрация имени отправителя | Модерация, лимит длины текста |
| Push-уведомления | Бесплатно (своё приложение) | Собственное мобильное приложение | Нужна разработка и публикация приложения |
| WhatsApp Business API | За диалог/шаблон | Верификация бизнеса, модерация шаблонов | Отправка только по одобренным шаблонам |
Ориентир простой: личные и технические уведомления — Telegram, критичные оповещения клиентам без привязки к мессенджерам — SMS, коммерческие диалоги с клиентами в WhatsApp — официальный Business API.
Почему бот не отправляет сообщения: диагностика
Если сообщение не доходит, начните проверку с ответа самого API — Telegram возвращает JSON с описанием ошибки, и в большинстве случаев причина указана прямо там. Типичные ситуации разбираем ниже.
- 🚫 403 Forbidden: bot can't initiate conversation — получатель ни разу не писал боту или заблокировал его; попросите нажать /start
- 🔑 401 Unauthorized — неверный или отозванный токен; проверьте строку токена на лишние пробелы
- 🆔 400 Bad Request: chat not found — неправильный chat_id; заново получите его через
getUpdates - ⏱️ 429 Too Many Requests — превышены лимиты частоты отправки; добавьте паузы между сообщениями
- 📵 Сообщение уходит, но не приходит — проверьте, не отключены ли уведомления Telegram в настройках телефона
Отдельный случай — сообщения в группах. Чтобы бот мог писать в группу, его нужно добавить туда участником, а chat_id группы обычно отрицательный и начинается с минуса. Если бот не «видит» сообщения в группе, проверьте настройку приватности у BotFather (команда /setprivacy) — точное поведение зависит от режима, выбранного для вашего бота.
⚠️ Внимание: не публикуйте токен бота в открытом коде на GitHub и в скриншотах. Сервисы мониторинга репозиториев находят такие токены за минуты, после чего ботом начинают пользоваться посторонние.
Как проверить, жив ли бот, без скриптов
Откройте в браузере адрес https://api.telegram.org/bot<ТОКЕН>/getMe — если вернулся JSON с именем бота и "ok":true, токен рабочий и бот активен. Если ошибка 401 — токен неверен или отозван.
Лимиты и правила, о которых стоит знать
Telegram ограничивает частоту отправки: боту нельзя слать сообщения в произвольном темпе, особенно разным пользователям при массовых рассылках. Точные пороги официально не публикуются, поэтому безопасная практика — делать паузы между отправками и обрабатывать ошибку 429, повторяя отправку через указанное в ответе время.
Ещё одно правило, о котором часто забывают: бот не может первым написать пользователю, который никогда с ним не взаимодействовал. Никакой обход этого ограничения официальным API не предусмотрен — это защита от спама. Поэтому сценарий «узнал номер телефона и написал ботом» технически невозможен: доставка по номеру телефона — это прерогатива SMS-канала.
Для длинных текстов учитывайте ограничение на длину одного сообщения — порядка нескольких тысяч символов. Если уведомление длиннее, разбивайте его на части или отправляйте файлом.
Часто задаваемые вопросы
Может ли бот отправлять сообщения по номеру телефона?
Нет. Telegram Bot API работает только с чатами, которые пользователь сам открыл с ботом. Отправка по номеру телефона возможна только через SMS-шлюзы операторов связи.
Почему бот отвечает ошибкой 403 при отправке?
Чаще всего получатель заблокировал бота или ни разу не нажимал /start. Попросите его открыть диалог с ботом и отправить любое сообщение, затем повторите попытку.
Можно ли отправлять сообщения бесплатно и без программирования?
Да. Используйте сервисы-коннекторы вроде Make или Zapier с модулем Telegram: в настройках указывается токен и chat_id, а сценарий запускается по триггеру — например, по новой строке в таблице.
Как отправлять уведомления сразу нескольким людям?
Создайте группу, добавьте туда бота и отправляйте сообщения на chat_id этой группы. Либо храните список chat_id подписчиков и отправляйте каждому с паузами, чтобы не попасть под ограничение частоты.
Что делать, если токен бота попал в чужие руки?
Откройте диалог с @BotFather, выполните команду /revoke и выберите бота — старый токен перестанет работать, а вы получите новый. После этого обновите токен во всех своих скриптах и сервисах.