Введение
Telegram Бот — это специальный аккаунт, который автоматизируется за счет работы с API. Создать Telegram бота может каждый, единственное условие - немного разбираться в коде.
Если вы уже знаете, как создавать ботов, перейдите по ссылке начала работы!
grammY — это библиотека, с помощью которой написать такого бота очень просто.
Как написать бота
Прежде чем приступить к созданию бота, ознакомьтесь с тем, что могут и чего не могут боты Telegram. Ознакомьтесь с Введением для разработчиков от команды Telegram.
При создании бота Telegram вы создадите текстовый файл с исходным кодом вашего бота. (Вы также можете скопировать один из наших файлов-примеров). Он определяет что на самом деле делает ваш бот, т.е. “когда пользователь отправляет это сообщение, ответить таким образом” и так далее.
Затем вы можете запустить ваш исходный файл. Теперь ваш бот будет работать, пока вы не прекратите его работу.
Мы вроде как закончили…
Как поддерживать бота в рабочем состоянии
…за исключением случаев, когда вы серьезно относитесь к своему проекту бота. Если вы остановите бота (или выключите компьютер), он станет неактивным и больше не будет реагировать на сообщения.
Пропустите этот раздел, если вы хотите только поиграть с ботами, и продолжите здесь с необходимыми условиями для начала работы.
Проще говоря, если вы хотите, чтобы бот постоянно находился в сети, вам придется держать компьютер работающим 24 часа в сутки. Поскольку вы, скорее всего, не захотите делать это со своим компьютером, вам следует загрузить свой код на хостинг-провайдер (другими словами, на чужой компьютер, также известный как сервер), и позволить этим людям запускать его для вас.
Существует бесчисленное множество компаний, которые позволят вам запустить своего Telegram бота бесплатно. В этой документации рассматривается ряд различных хостинг-провайдеров, которые, как мы знаем, хорошо работают с grammY (см. раздел Хостинг). Однако в конечном итоге выбор провайдера остается за вами. Помните, что размещение вашего кода в другом месте означает, что тот, кто владеет этим “местом”, имеет доступ ко всем вашим сообщениям и данным ваших пользователей, поэтому вам следует выбрать провайдера, которому вы можете доверять.
Вот (упрощенная) схема того, как в итоге будет выглядеть настройка, когда Алиса свяжется с вашим ботом:
_________ отправляет ____________ ___________
| Алиса | —> Telegram сообщение —> | Telegram | —> HTTP запрос —> | ваш бот |
————————— вашему бота ———————————— ———————————
телефон сервера Telegram ваш компьютер,
лучше: сервер
|_____________________________________| |___________|
| |
Ответственность Telegram ваша ответственность
Аналогичным образом ваш бот может делать HTTP-запросы к серверам Telegram, чтобы отправлять сообщения Алисе. (Если вы никогда не слышали о HTTP, то можете считать, что это пакеты данных, которые передаются через интернет).
Что grammY делает для вас
Боты взаимодействуют с Telegram посредством HTTP-запросов. Каждый раз, когда ваш бот отправляет или получает сообщения, HTTP-запросы идут туда и обратно между серверами Telegram и вашим сервером/компьютером.
По своей сути, grammY реализует все эти коммуникации за вас, так что вы можете просто ввести send
в свой код, и сообщение будет отправлено. Кроме того, есть множество других полезных вещей, которые grammY делает, чтобы упростить создание бота. Вы познакомитесь с ними по ходу работы.
Необходимые условия для начала работы
Пропустите остальную часть этой страницы, если вы уже знаете, как разрабатывать приложения Deno или Node.js, и приступайте к работе.
Вот несколько интересных вещей о программировании, но которые редко объясняются, потому что большинство разработчиков считают их очевидными.
В следующем разделе вы создадите бота, написав текстовый файл, содержащий исходный код на языке программирования Type
Как научиться кодить
Вы можете начать изучение TypeScript с официального учебника, написанного командой TypeScript, а затем двигаться дальше. Не тратьте больше 30 минут на чтение информации в интернете, затем вернитесь сюда, (прочитайте остальную часть раздела) и приступайте к работе.
Если вы видите незнакомый синтаксис в документации или получаете сообщение об ошибке, которая вам непонятна, погуглите - объяснение уже есть в интернете (например, на Stack Overflow).
Учитесь кодить правильно
Сэкономьте свое время, посмотрев это 34
Выбрав grammY, вы уже определились с языком программирования, а именно TypeScript. Но что произойдет после того, как вы создадите свой код на TypeScript, как он начнет выполняться? Для этого вам нужно установить программное обеспечение, которое сможет исполнить ваш код. Такое программное обеспечение называется средой выполнения. Она принимает файлы вашего исходного кода и фактически выполняет все, что в них запрограммировано.
Для нас есть две среды выполнения на выбор: Deno и Node
Остальная часть этого раздела поможет вам определиться с выбором между этими двумя платформами. Если вы уже знаете, что хотите использовать, перейдите к разделу необходимые условия для Node
.js или необходимые условия для Deno.
Node.js — это более старая, но более зрелая технология. Если вам нужно подключиться к нестандартной базе данных или сделать другие низкоуровневые системные вещи, вероятность того, что вы сможете сделать это с помощью Node.js, очень высока. Deno — это относительно новая технология, поэтому иногда ей все еще не хватает поддержки некоторых продвинутых вещей. Сегодня большинство серверов используют Node.js.
С другой стороны, Deno значительно проще в освоении и использовании. Если у вас еще нет большого опыта в программировании, имеет смысл начать с Deno.
Даже если вы уже писали код для Node.js, вам стоит попробовать Deno. Многие вещи, которые сложно сделать в Node.js, не требуют особых усилий в Deno.
Deno
- гораздо проще в установке.
- не требует настройки проекта.
- использует намного меньше места на диске.
- имеет превосходные встроенные средства разработки и отличную интеграцию с редакторами.
- более безопасен.
- имеет множество других преимуществ, которые здесь не уместны.
Разрабатывать код под Deno также намного интереснее. По крайней мере, мы так считаем.
Однако если у вас есть причины использовать Node.js, например, потому что вы уже хорошо его знаете, то это совершенно нормально! Мы следим за тем, чтобы grammY одинаково хорошо работал на обеих платформах, и не срезаем углы. Пожалуйста, выбирайте то, что вы считаете лучшим для себя.
Необходимые условия для Deno
Прежде чем приступить к созданию бота, давайте потратим несколько минут на правильную настройку для разработки программного обеспечения. Это означает установку нескольких инструментов.
Подготовка вашей машины к разработке
Установите Deno если вы ещё не установили его.
Вам также понадобится текстовый редактор, который хорошо подходит для программирования. Лучшим из них для Deno является Visual Studio Code, часто называемый просто VS Code. Установите его
Далее вам нужно соединить VS Code и Deno. Это очень просто: Существует расширение для VS Code, которое делает все автоматически. Вы можете установить его как описано здесь.
Теперь ваша система готова к разработке бота! 🎉
Разработка бота
Создайте новую директорию. Она будет содержать проект с вашим ботом. Откройте эту новую директорию в VS Code.
mkdir ./my-bot
code ./my-bot
2
Если вы находитесь на macOS и команда
code
недоступна, просто откройте VS Code, нажмитеCmd+Shift+P
, введите “shell command” и нажмите Enter.
В VS Code превратите пустую директорию в проект Deno. Нажмите Ctrl+Shift+P
, введите “deno init” и нажмите Enter. В правом нижнем углу вашего редактора должна отобразиться версия Deno, установленная в вашей системе.
Ваша среда разработки Deno готова. Теперь вы можете приступить к написанию бота. Об этом мы расскажем на следующей странице.
И последнее: После создания бота, например, в файле с именем bot
, вы можете запустить его, набрав в терминале команду deno run
. (Да, написание программ подразумевает частое использование терминала, привыкайте к этому). Остановить бота снова можно с помощью Ctrl+C
.
Готовы? Приступайте к работе! 🤖
Необходимые условия для Node.js
Вы собираетесь написать своего бота на TypeScript, но, в отличие от Deno, Node.js не может выполнять TypeScript. Вместо этого, когда у вас есть исходный файл (например, bot
), вы собираетесь компилировать его в JavaScript. После этого у вас будет два файла: ваш исходный bot
и сгенерированный bot
, который, в свою очередь, может быть запущен Node.js. Точные команды для всего этого будут представлены в следующем разделе, когда вы действительно создадите бота, но важно знать, что эти шаги необходимы.
Чтобы запустить файл bot
, у вас должен быть установлен Node
В общем, вот что вам нужно сделать для Node.js:
- Создайте исходный файл
bot
с кодом TypeScript, например, с помощью VS Code или любого другого редактора кода..ts - Скомпилируйте код, выполнив команду в терминале. В результате будет создан файл
bot
..js - Запустите
bot
с помощью Node.js, опять же из терминала..js
Каждый раз, когда вы изменяете код в bot
, вам нужно перезапускать процесс Node.js. Нажмите Ctrl+C
в терминале, чтобы остановить процесс. Это приведет к остановке бота. Затем вам нужно повторить шаги 2 и 3.
Подождите, что?
Установка Node.js и настройка всего необходимого занимает много времени. Если вы никогда не занимались этим раньше, то можете столкнуться с множеством непонятных проблем, которые будет сложно решить.
Именно поэтому мы предполагаем, что вы знаете, как настроить свою систему, или способны научиться сами. (Установка Node.js правильным способом настолько сложна, что для этой страницы она не подходит).
Если на этом этапе вы чувствуете себя потерянным, вам следует оставить Node.js и использовать вместо него Deno.
Все еще уверены в себе? Отлично! Приступайте к работе! 🤖