«То, что обычно на курсах продают за 50 тысяч рублей, мы вам сейчас расскажем за 15 минут бесплатно». Вы чё, совсем оборзели? Но начну сначала. Нужно было сделать бота для Telegram с минимальным функционалом. Просто бот обратной связи с помощью которого подписчики могли бы предлагать новости или писать письма в редакцию. Боты для Telegram я ни разу не писал и конечно же начал гуглить. Нагуглил я на свою голову журнал Яндекс Практикума «Код». Теперь я об этом ой как сожалению. Так как из-за них, по сути, потерял неделю изучая неправильные методы и пытаясь их реализовать. Хотя в итоге мне понадобился ровно 1 день на написание работающего бота, когда я нашёл нормальную и очень короткую статью на каком-то левом англоязычном сайте. И не поверите, автор статьи не выпендривался и не хорохорился о бесплатности своей статьи и при этом сделал всё правильно, а не через известное место, как «практики» Яндекса. Началось всё с этой статьи: https://thecode.media/eto-v-kod/ В целом, всё, что описано в статье — это и был весь необходимый функционал бота. Начитался советов этой статьи: «Сложный вариант — написать своего бота и поставить его на сервер». Это оказалось абсолютной глупостью. С таким функционалом там вообще делать нечего и как раз сложнее делать через какой-то конструктор. Но это я понял потом. В начале я попробовал через конструкторы и оказалось, что они все или платные, или с ограничениями на пользователей и запросы. Посмотрев цены, я немного прифигел. Хостинг стоит дешевле, чем эти мега конструкторы ботов. Ну что, посмотрев другие похожие статьи на сайте, я наткнулся на бота на Python: https://thecode.media/python-bot/ По сути, всё очень просто и легко. С Python я знаком очень поверхностно. Никогда на нём не программировал, но с таким количеством кода особа ума не надо, чтобы разобраться. Пришлось поднимать бота на сервере и подключать библиотеку pytelegrambotapi — хотя потом я понял, что для такого функционала подключать библиотеку бессмысленно. Но это потом, а пока я пилил бота на Python. Потратил где-то 2 дня, потому что нужно было вначале разобраться как на моём простом хостинг плане можно ставить Python и грузить нужные библиотеки. А затем и написать самого бота. Написал, работает. Всё в шоколаде думал я. Но не тут-то было. Метод работа бота, описанный в статье для программистов — где они в начале бахвалятся о том, что за их труды неплохо бы и 50 тысяч получить — по сути неграмотный, даёт большую нагрузку на сервер и добавляет дополнительный геморрой с постоянным перезапуском скрипта Python при проблемах на сервере. Короче, у Telegram существует 2 главных метода получать сообщения от бота на вашем сервере. Первый — getUpdates (описан в статье) — это постоянно отправлять запросы (если упростить — стучаться) на сервера Telegram и спрашивать появились ли обновления. Метод неудобный, но в каких-то случаях, наверное, имеющий право на жизнь. Второй — через Webhooks. То есть, тут уже сам Telegram при появлении обновлений будет стучаться на ваш сервер с данными обновлений, когда они появятся. А значит твоему серверу не нужно отправлять постоянные бессмысленные запросы, а просто обрабатывать запросы от Telegram при появлении обновлений. Второй метод в разы лучше и даже проще в плане реализации, если в нём разобраться. В интернете можно найти разные статьи. Я понимаю, когда кто-то где-то написал эту инструкцию и в принципе она имеет права на жизнь, чтобы, например, разобраться в функционале Telegram Bot API и так далее. Но тут целый Яндекс.Практикум и выпендреж, что мы такие крутые — даём вам такие нереальные знания нахаляву. А если, по существу, то подсовывают свинью. В конце концов я отказался от Python. Решил делать с помощью Webhooks и PHP. Вначале давай исследовать всякие библиотеки Telegram Bot API на PHP. Пытался их поставить на сервер, но неудачно. Их легко можно было поставить на VPS , но у меня был простой уже настроенный хостинг. В принципе, и тут можно было всё это дело поставить. Мне просто было лень дальше разбираться или стучаться в службу поддержки. И тут я натолкнулся на простейшую статью о том, как сделать Telegram-бота на PHP без каких-то библиотек. Дело 15 минут. Сама статья: https://nordicapis.com/how-to-build-your-first-telegram-bot-using-php-in-under-30-minutes/ Тут какой-то левый чувак без пижонства расписывает, как это легко можно реализовать через чистый PHP и Webhooks. Там у него, конечно, совсем базовый функционал, и чтобы довести бота до ума мне понадобился один вечер. Но, тем не менее, теперь всё идеально работает. Что в итоге? Поменьше снобизма и не всегда стоит доверять модным сайтам для программистов. И да, куда лучше простые пользователи Stackverflow. Там я к примеру нашёл, как легко реализуются кнопки в боте на PHP: https://stackoverflow.com/questions/45892939/how-do-i-write-a-telegram-bot-using-inline-keyboard-php

Теги других блогов: программирование бот Telegram