Ребятушки всем Привет. Еще до блокировки Telegram в РФ, я написал цикл статей по разработке Telegram Bot и Telegram Bot на Python. Основной идей для написания статей стала необходимость разобраться в тематике ботов и поделиться своими наработками с подписчиками.

Недавно ко мне обратился мой подписчик. Утверждая что сделал все один в один как в статье, но у него ничего не работает. 

Ищем проблему?

Начал разбираться в логах PyCharm. Все сводилось к тому, что скрипт бота не может подключиться к серверу Telegram. Конечно первым делом я предположил, что по невнимательности допущена ошибка в настройках или подключении библиотек в PyCharm. Просмотрев еще раз логи убедился в том, что бот не может подключится к серверу Telegram. Тогда возник вопрос о правильности ввода данных выданных BotFather. Этот момент  тоже перепроверил. Все было в норме.

В какой-то момент я вспомнил, что по сути самым простым способом для проверки бота на работоспособность, является простой http запрос в браузере. Результатом запроса будет ответ от сервера Telegram в json формате. По итогу сервер Telegram отвечает на запросы. Однако если делать это с Российского ip, тогда появляються проблемы.

Причины?

  • 13 апреля 2018 года (символично, пятница 13-ое). Таганский суд Москвы принимает решение о блокировке мессенджера. Хорошо или плохо это не мое дело, но в итоге мессенджер и все боты начинаю работать с большими проблемами.
  • Роскомнадзор обязал провайдеров заблокировать доступ к Telegram.
  • Все боты размещенные на серверах в РФ перестают работать.

Пути решения.

В итоге в первые часы после блокировки было найдено два пути:

— Воспользоваться встроенным протоколом SOCKS5 (встроен в Telegram)
— Установить VPN-сервис

Я думаю об этом вы уже знаете. И все отрабатывает на ура. Есть огромное количество прокси-серверов и vpn сервисов, как бесплатных, так и платных. Многие даже встроены в браузер.

Но нашу проблему это не решает, т.к. при использование SOCKS5 именно приложение Telegram подключается к прокси-серверу и VPN в браузерной сессии имеет такой же эффект. В итоге в браузере и десктопной версии Telegram работает, а PyCharm и наш бот не может подключится к серверам Telegram из-за блокировки ip.

У данной проблемы есть несколько решений:

  • Работать через прокси-сервер (желательно из США или Европы) Т.е. настроить свой доступ в интернет таким образом чтобы весь сетевой трафик шел через прокси-сервер.
  • Работать через VPN. Опять же весь сетевой трафик должен идти через VPN туннель.
  • Разместить код бота на VDS сервере.

Естественно что все эти сервисы должны быть за пределами РФ, потому что все наши усилия сведутся к нулю, если к примеру у VDS сервера будет ip из РФ.

Эпилог.

Более подробное изложение по каждому из пунктов выходит за рамки этой статьи. И по сути избыточен, т.к. сервисы блокируют постоянно, а решения на сегодняшний момент одни и те же. Надеюсь я помог вам или натолкнул на решение. Не забудьте поддержать проект лайком и репостом в социальных сетях. Монетка также будет не лишней.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.