Задать вопрос
@castapokasta

Почему мой Telegram-бот не работает?

Пишу бот на Webhook, хостинг Beget.
Nginx работает, HTTPS подключён, в логах всё нормально, никакой ошибки нет, домен рабочий. Но бот в отключке, не отвечает.
Долго думал, в чем причина. В итоге единственное, что я заметил, - это неисправная работа DNS. Я ввожу свой домен в браузере через https://домен.ru, а страница выводит ошибку без номера ("Не удалось загрузить страницу"). Раньше бот работал, и домен выводил "Welcome to Nginx!". Потом бот перестал работать, но это по другим причинам. Сейчас я их устранил, но теперь не работает домен.
Пробовал через "http://...", через инкогнито, через телефон. Ничего не помогает.
Причем, когда я перехожу по этой ссылки из панели Beget, то загружает и выводит "Welcome to Nginx!", но это уже вторично и связано с кэшем, я так думаю.
Я подозреваю, что именно он причина неактивности моего бота.
Буду очень благодарен, если выручите. Бот очень простой, мне бы хотя бы оживить его любыми способами.

spoiler
P.S.: Я не особо хорош в программировании, активно пользуюсь ИИ, поэтому прошу, не используйте профессиональные термины :)
  • Вопрос задан
  • 391 просмотр
Подписаться 1 Средний 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Веб-разработчик Базовый
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Web-разработчик
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
Скорее всего DNS не успел обновиться. Из панели Beget всё открывается потому что там идёт напрямую по IP сервера, минуя DNS. А снаружи браузер лезет через DNS который ещё не переключился на твой сервер.

Проверь на dnschecker.org — введи домен и посмотри куда он ведёт. Если IP там другой или пустой — просто жди, от часа до суток само обновится. Если IP правильный — скинь что выдаёт браузер, тогда смотрим дальше.
Ответ написан
Комментировать
thewind
@thewind
php программист, front / backend developer
ТГ в РФ заблокировали. Как на выход (работа с их апи) так и на вход (получение вебхуков). Столкнулся с этим на селектел и других хостинг провайдерах.
Ответ написан
Комментировать
@cupxsize
Привет! Судя по всему, проблема не в DNS и не в твоём коде, а в блокировках API Telegram на уровне провайдеров внутри РФ. Последние месяцы многие российские хостинги (Beget, Timeweb и др.) теряют стабильный доступ к api.telegram.org — запросы от ботов просто не доходят, вебхуки падают.

То, что домен открывается из панели управления Beget, объясняется тем, что внутренний трафик сервера может идти в обход, а внешние вебхуки — нет. Это классическая ситуация последнего времени.

Единственное надёжное решение, которое я нашёл — вынести бэкенд бота на VPS-сервер за пределами РФ. Например, сервера в Германии сейчас показывают отличную стабильность. Я сам перенёс своего бота на такой VPS — проблема ушла полностью.

Подробно о том, как я это сделал, с какими трудностями столкнулся и какой хостинг в итоге выбрал, я написал в своей статье на Хабре. Там же есть ссылка на конкретный сервер, который я использую. Найдите меня по нику и посмотрите ссылку в моём профиле — она ведёт прямо на статью в Песочнице.

А пока, если хочешь быстро проверить гипотезу с блокировками, попробуй для теста арендовать самый дешёвый VPS в Европе (например, на час-два) и перенести туда бота. Если оживёт — значит, точно дело в блокировках.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы