Вступ
Бот Telegram — це спеціальний обліковий запис користувача, який автоматизується програмою. Будь-хто може створити бота 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 хвилин на читання матеріалів в Інтернеті, поверніться сюди, прочитайте решту розділу і розпочніть роботу.
Якщо ви бачите незнайомий синтаксис у документах або якщо ви отримуєте повідомлення про помилку, яке ви не розумієте, пошукайте його в Google — пояснення вже є в Інтернеті (наприклад, у 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
cd ./my-bot
code .
2
3
Якщо ви використовуєте 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.
Ви все ще впевнені? Чудово! Розпочніть роботу! 🤖