Самопроверка · Это не сканирование
Проверка по вопросам, когда бот молчит
Несколько вопросов о боте, который не отвечает, тормозит, ломает оплату или остался без прежнего разработчика. В ответ — обычными словами: вероятные причины, что проверить самому, уровень риска и когда имеет смысл передать бота на приём и ежемесячное сопровождение.
Пять вопросов
Чего эта страница не делает
Список выше — скрипт в браузере. Он сопоставляет выбранные симптомы с отказами, которые встречаются в обычном Telegram Bot API и на обычном хостинге. Он не вызывает getMe, getWebhookInfo и никакие методы WhatsApp и не измеряет ваш сервер. Чтобы прочитать живого бота, нужны токен и доступ к машине — как раз то, что страница не принимает.
Если в строке журнала есть токен, не вставляйте эту строку в чат, заявку или форму. Токен часто печатается случайно при старте процесса. Тот, кто видит бота в BotFather, может отозвать утёкший токен и положить новое значение только на сервер.
Webhook и длинный опрос
Бот Telegram не работает на серверах Telegram. Ваша программа либо ждёт на getUpdates (длинный опрос), либо принимает HTTP POST по адресу, зарегистрированному через setWebhook. Bot API считает эти способы взаимоисключающими: пока webhook установлен, getUpdates не отдаёт очередь. Бот, который ещё открывается в приложении, может молчать, потому что программа уже завершилась.
getWebhookInfo сообщает текущий адрес, сколько обновлений ждёт (pending_update_count) и последнюю ошибку доставки (last_error_date, last_error_message). Растущая очередь значит, что обновления всё ещё у Telegram, а ваш адрес их не принял. Для людей это тишина. Страница не вызовет getWebhookInfo за вас; тот, у кого токен уже есть, может вызвать сам и не присылать токен сюда.
Две копии одного токена дают 409 Conflict. Часто одна копия — ноутбук, оставленный на ночь в опросе, пока сервер тоже опрашивает, либо старый хост, чей webhook не удалили, пока новый хост опрашивает. Снаружи это ответы через раз.
Просроченный TLS
Доставка webhook требует HTTPS на порту 443, 80, 88 или 8443 и сертификата, который Telegram может проверить. Просроченный сертификат или имя, не совпадающее с хостом, обрываются на TLS, до вашего обработчика. Панель хостинга всё это время может показывать, что машина включена. Если публичный адрес вам уже известен, браузер покажет предупреждение о сертификате без секрета. Если адреса не знаете, не угадывайте.
Сертификаты с автопродлением перестают продлеваться, когда умирает задание продления, закрыт порт 80 или домен больше не указывает на машину. Код бота не менялся. Сменился замок на двери.
Отозванный токен
Отзыв токена в BotFather заставляет api.telegram.org отвечать старому токену 401 Unauthorized. Процесс продолжает брать значение из своего окружения. Перезапуск без замены падает так же. Новый токен должен лежать в окружении сервера, без права чтения для всех, и больше нигде. Ему не место на этой странице.
Если бота нельзя открыть в BotFather, токен не отозвать и webhook не перенести. Имя может продолжать открываться у тех, у кого чат уже есть, а управление личностью остаётся у того, у кого BotFather. Новый бот — новое имя и новый диалог. Старые чаты не переезжают. Та же развилка, если прежний разработчик держит вход на сервер: машину можно выключить или сменить пароль, и окно чата этого не покажет.
Лимиты и окно оплаты
Слишком частая отправка даёт 429 Too Many Requests и retry_after в секундах. В опубликованных рекомендациях Telegram — около одного сообщения в секунду в одном чате и не больше примерно 20 сообщений в минуту в ту же группу. Цикл рассылки, который не смотрит на 429, выглядит как зависший бот. Это не мёртвый сервер.
Платежи строже обычных сообщений. Бот обязан ответить на pre_checkout_query за 10 секунд и не выдавать товар, пока не придёт successful_payment. Процесс, застрявший на блокировке базы, пропускает это окно. Человек видит срыв оплаты либо платит и ничего не получает. Идентификатор для позднего возврата Stars хранит бот. Сайт его не видит и не принимает и не выплачивает деньги. Страница Telegram описывает Stars только в узком смысле цифровых товаров.
Процесс на сервере
Обычные остановки обычны. Процесс завершился, и его никто не запустил. Ядро убило его из-за памяти. Диск заполнился. SQLite сообщил database is locked, потому что два процесса открыли один файл. Надпись «работает» в панели относится к виртуальной машине, не к вашей программе. Если сервер не открывает HTTPS к api.telegram.org, опрос падает, а процесс остаётся. Webhook падает в обратную сторону: Telegram не может подключиться.
Супервизор, который поднимает процесс после выхода, не чинит плохой токен или плохой конфиг. Журнал отличает падение от цикла перезапусков. Не пересылайте строку журнала, в которой есть токен.
WhatsApp — та же форма, другая дверь
Бот на официальном WhatsApp Cloud API видит только сообщения, которые Meta доставляет на webhook этого бизнес-приложения. Если адрес лежит или не отвечает, новые диалоги до программы не доходят. Приложение и токен живут в бизнес-аккаунте Meta. Короткий токен прекращает работу, когда истекает. Если приложение может открыть только прежний разработчик, токен не сменить, пока доступ не ваш.
Страница не повторяет сроки проверки Meta, правила шаблонов и цены по странам. Это правила Meta; там, где сайт их описывает, они на странице WhatsApp, а счёт приходит владельцу аккаунта. Не вставляйте токен системного пользователя в форму.
Когда хватит проверок и пора передавать
Продолжайте проверять, если сервер и код ещё открываются и сбой начался сегодня. Смотрите процесс, сертификат и не запущена ли вторая копия.
Передавайте, когда клиент уже мог заплатить, когда нельзя открыть и сервер, и код, или когда единственный, кто мог, не отвечает. Приём начинается со списка аккаунтов, которые ещё есть, затем чинится или собирается заново нужный путь. Ежемесячное сопровождение — поздняя отдельная договорённость: кто-то замечает мёртвый процесс, хранит копии и следит за изменениями API платформы. Приём и ремонт: сначала бесплатная проверка, затем цена по проблеме. Страница сопровождения — помесячная оплата, цена по сложности, после объёма. Страница приёма описывает саму оценку. Этот список не смета и не сканирование.
Отнесите вывод в форму.
Напишите платформу, что бот делает сейчас и что вы ещё можете открыть. Черновой картины достаточно, чтобы начать оценку.