Бот в telegram. Как сэкономить время на разработку, если пишешь впервые

Осознание после проведения ревью. Несколько пунктов, на которые ушло больше всего времени.

Среда разработки Pycharm для mac

Привет, читатель.

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

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

Пишу надеясь на то, что они помогут таким же как я, кто впервые хочет сделать своего бота в telegram, но не знает с чего начать. Здесь нет детальных действий. Как говорится, главное задать вектор.

  1. @Botfather. Зайди к этому боту в telegram. С помощью него создай своего бота. Там будет только мета (т.е. общая) информация: название, описание, фото, команды. Ах да, Botfather даст тебе токен твоего бота. Токен - это закодированная строка из цифр и букв. С помощью него происходит все управление ботом. Не говори никому токен и не пиши его нигде в открытом доступе.
  2. Pycharm. Среда разработки. В ней нужно писать код своего бота. По мне, вещь удобная и позволяет напрямую устанавливать пакеты (см.п.3).
  3. Почти все уже написано до тебя. Если ты хочешь что-то написать, тебе стоит лишь разбить это на логические части. Есть куча разных библиотек, которые устанавливаются либо через Pycharm(привет, п.2), либо через системную консоль. Например, стоит только установить бибилиотеку «yadisk» и 2мя командами можно отправить файл через бот напрямую из вашего Яндекс диска. Благодаря этому, бота telegram может написать даже человек, совсем далекий от программирования.
  4. Табуляция, а не «;». Если будешь писать на Python учти, что в нем логически выделяют конструкции не «;» а пробелы и табуляция (ох, сколько же много времени у меня ушло, чтобы привыкнуть и не делать совсем простых ошибок).
  5. Ngrok. Запускать рабочего бота можно и с локального компьютера. Для этого нужно сделать «туннель» (фиктивный сайт, который перенаправляет на твою локальную машину). Погугли «ngrok». Этот вариант бесплатен, но не удобен — нужен бесперебойно работающий и подключенный к сети компьютер. Походит скорее для тестирования нового кода.
  6. PythonAnywhere. Если хочешь сделать все красиво и разместить код на удаленном сервере — PythonAnywhere твой выбор. Там все довольно просто. Можно сделать все бесплатно. Хочешь бОльшую пропускную способность/больше места на диске/свою базу данных, тогда нужно будет заплатить. Цены (как по мне) очень адекватные. Тут есть консоль, так что готовые библиотеки устанавливаются точно также, как и в п.3.
  7. MySQL. Сразу делай свое хранилище и собирай статистику о пользователях и их действиях. Если выберешь сервер как и я в п.6, то будет доступна БД MySQL. Это пригодится для отправки сообщений тем, кто уже пользовался ботом, отслеживания их действий, предпочтений. Поможет тебе сделать бота лучше и удобнее для пользователей. Не представляю как без этого вообще можно управлять ботом.

Удачи!

0
22 комментария
Написать комментарий...
Pavel Ivanov

Почему VC постепенно превращается в Хабр?

Ответить
Развернуть ветку
Максим

Это что, сейчас хабр такой? Божечки

Ответить
Развернуть ветку
Максим Мухарёв

Потому, что Хабр уже не торт? )

Ответить
Развернуть ветку
Евгений Сазонов
Автор

Не уловлю интонации. Не писал ничего на хабре. Да и на vc до этого тоже. Предугадываю следующий ответ "лучше бы и не писал", так?

Ответить
Развернуть ветку
Danny Belchenko

Нынче с таким набором не берут на Хабр, поэтому вы выкладываете сюда?

Ответить
Развернуть ветку
Евгений Сазонов
Автор

С таким набором никуда не берут

Ответить
Развернуть ветку
Kirill Pankin

Python с каких-то пор стал дефолтным языком программирования? Скрипт-киддис атакуэ?

Ответить
Развернуть ветку
Danny Belchenko

А вы бы писали бота для телеграмма, что бы вы взяли?

Ответить
Развернуть ветку
Андрей Владимиров

Бейсик?

Ответить
Развернуть ветку
Danny Belchenko

Надеюсь, оригинальный? А запустим на 8080

Ответить
Развернуть ветку
Андрей Владимиров

8080 - это вчерашний день. х86 будет в самый раз.

Ответить
Развернуть ветку
Danny Belchenko

Вы не уловили сарказм, Бейсик это вчерашний день

Ответить
Развернуть ветку
Андрей Владимиров

Серьезно? XD

Ответить
Развернуть ветку
Denis Kiselev

JS?

Ответить
Развернуть ветку
Danny Belchenko

Что бы не начинать священную войну, скажу что каждый извращается как он хочет

Ответить
Развернуть ветку
Denis Kiselev

Не - просто много на чм ботов можно настругать. Node/js и python вполне ок, кто в них шарит. Что не так? Ms еще вроде C# предлагала в рамках Bot Framework вместе с нодой

Ответить
Развернуть ветку
Mr. Sandman

Golang number one

Ответить
Развернуть ветку
Андрей Владимиров

На Хабре за обилие повелительного наклонения и вот этого "здесь нет детальных действий" сразу накидали бы кучу минусов в карму.
А на vc, глядишь, пару лайков поставят из жалости к автору.

Ответить
Развернуть ветку
Denis Kiselev

Хабр, мягко говоря, не идеален, да

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Сеня Канаба

Зачем писать код? Если можно воспользоваться конструктором , где есть функционал в разы превосходящий то, что делают 90% людей сейчас на рынке.

Ответить
Развернуть ветку
GS

И тут должна быть ссылка и перечень уникальных возможностей конструктора вместе с кошельком автора?

Ответить
Развернуть ветку
Евгений Сазонов
Автор

Да, проще. Но в любых конструкторах много ограничений. Даже в конструкторе сайтов на wix, например, недавно сделали удобную обертку для добавления личного кода.

Ответить
Развернуть ветку
19 комментариев
Раскрывать всегда