Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

Saya mula menceburkan diri dalam dunia IT hanya tiga minggu lalu. Serius, tiga minggu lalu saya tidak memahami sintaks HTML, dan pengenalan saya kepada bahasa pengaturcaraan berakhir dengan kurikulum sekolah tentang Pascal sejak 10 tahun lalu. Walau bagaimanapun, saya memutuskan untuk pergi ke kem IT, di mana lebih baik untuk kanak-kanak membuat bot. Saya memutuskan bahawa ia tidak begitu sukar.

Ini memulakan perjalanan yang panjang di mana saya:

  • menggunakan pelayan awan dengan Ubuntu,
  • berdaftar di GitHub,
  • mempelajari sintaks JavaScript asas,
  • membaca satu tan artikel dalam bahasa Inggeris dan Rusia,
  • akhirnya buat bot,
  • Saya akhirnya menulis artikel ini.

Keputusan akhir kelihatan seperti ini:

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

Saya akan katakan dengan segera bahawa ini adalah artikel untuk pemula - hanya untuk memahami cara melakukan perkara asas dari awal.

Dan juga - untuk pengaturcara lanjutan - hanya untuk membuat mereka ketawa kecil.

1. Bagaimana untuk menulis kod dalam JS?

Saya faham bahawa ia patut sekurang-kurangnya memahami sintaks bahasa itu terlebih dahulu. Pilihan jatuh pada JavaScript, semata-mata kerana langkah seterusnya untuk saya ialah membuat aplikasi dalam ReactNative. Saya mulakan dengan kursus di Codecademy dan sangat gembira. 7 hari pertama adalah percuma. Projek sebenar. saya syorkan. Menyiapkannya mengambil masa kira-kira 25 jam. Sebenarnya, tidak semuanya berguna. Inilah rupa struktur kursus dan blok pertama secara terperinci.

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

2. Bagaimana untuk mendaftar bot?

Ini banyak membantu saya pada mulanya artikel ini dari blog Archakov tertentu. Dia mengunyah awal-awal lagi. Tetapi perkara utama yang ada ialah arahan untuk mendaftar bot. Saya tidak boleh menulisnya dengan lebih baik, dan kerana ini adalah bahagian yang paling mudah, saya hanya akan menulis intipatinya. Anda perlu membuat bot dan mendapatkan APInya. Ini dilakukan melalui bot lain - @BotFather. Cari dia di telegram, tulis kepadanya, ikuti laluan mudah dan dapatkan (simpan!) kunci API (ini adalah set nombor dan huruf). Ia berguna kemudian.

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

3. Apakah rupa kod bot?

Selepas mengkaji artikel untuk masa yang lama, saya menyedari bahawa ia berbaloi menggunakan beberapa jenis perpustakaan (kod pihak ketiga dalam format modul) supaya tidak perlu risau tentang mengkaji API Telegram dan mencipta kepingan besar kod dari awal. Saya menemui rangka kerja telegraf, yang entah bagaimana perlu disambungkan kepada sesuatu menggunakan npm atau benang. Beginilah kira-kira bagaimana saya memahami apa yang terdiri daripada penggunaan bot. gelak sini. Saya tidak akan tersinggung. Contoh di bahagian bawah halaman paling banyak membantu saya semasa pembuatan bot berikutnya:

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

3. Bagaimana untuk membuat pelayan awan anda sendiri untuk 100 rubel

Selepas banyak mencari, saya menyedari bahawa arahan 'npm' dalam gambar di atas merujuk kepada baris arahan. Baris arahan ada di mana-mana, tetapi untuk dapat melaksanakannya, anda perlu memasang NodePackageManager. Masalahnya ialah saya memprogramkan pada PixelBook dengan ChromeOS. Saya akan melangkau di sini blok besar tentang cara saya mempelajari Linux - kebanyakannya ia kosong dan tidak perlu. Jika anda mempunyai Windows atau MacBook, anda sudah mempunyai konsol.

Secara ringkasnya, saya memasang Linux melalui Crostini.

Walau bagaimanapun, dalam proses itu, saya menyedari bahawa untuk bot berfungsi secara berterusan (dan bukan hanya apabila komputer saya dihidupkan), saya memerlukan pelayan awan. saya telah memilih vscale.io Saya menghabiskan 100 rubel dan membeli pelayan Ubuntu paling murah (lihat gambar).

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

4. Bagaimana untuk menyediakan pelayan untuk menjalankan bot

Selepas itu, saya menyedari bahawa saya perlu membuat beberapa jenis folder pada pelayan di mana saya akan meletakkan fail dengan teks kod. Untuk melakukan ini, dalam konsol (jalankan terus di laman web melalui butang "Konsol terbuka"), saya masuk

mkdir bot

bot - ini menjadi nama folder saya. Selepas itu, saya memasang npm dan Node.js, yang akan membolehkan saya menjalankan kod daripada fail dengan resolusi *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Saya amat mengesyorkan menyediakan sambungan ke pelayan melalui konsol anda pada peringkat ini. Di sini arahan Ini akan membolehkan anda bekerja dengan pelayan secara langsung melalui konsol komputer anda.

5. Cara menulis kod untuk bot pertama anda.

Tetapi kini ia hanya satu penemuan untuk saya. Mana-mana program hanyalah baris teks. Ia boleh disisipkan di mana-mana sahaja, disimpan dengan sambungan yang diingini, dan itu sahaja. Awak cantik. sudah biasa Atom, tetapi sebenarnya, anda hanya boleh menulis dalam pad nota standard. Perkara utama ialah menyimpan fail kemudian dalam sambungan yang dikehendaki. Ia seperti menulis teks dalam Word dan menyimpannya.

Saya membuat fail baru, di mana saya memasukkan kod dari contoh pada halaman telegraf dan menyimpannya dalam fail index.js (secara umum tidak perlu menamakan fail seperti itu, tetapi ini adalah kebiasaan). Penting - bukannya BOT_TOKEN, masukkan kunci API anda daripada perenggan kedua.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()

6. Bagaimana untuk memuat naik kod ke pelayan melalui github

Sekarang saya perlu memuat naik kod ini ke pelayan dan menjalankannya. Ini menjadi cabaran buat saya. Akibatnya, selepas banyak kesukaran, saya menyedari bahawa lebih mudah untuk mencipta fail pada github yang membolehkan anda mengemas kini kod menggunakan arahan dalam konsol. Saya mendaftar akaun di github dan lakukan projek baru, tempat saya memuat naik fail. Selepas itu, saya perlu memikirkan cara untuk menyediakan muat naik fail dari akaun saya (buka!) ke pelayan dalam folder bot (jika anda tiba-tiba meninggalkannya, tulis sahaja cd bot).

7. Bagaimana untuk memuat naik fail ke pelayan melalui github bahagian 2

Saya perlu memasang program pada pelayan yang akan memuat turun fail dari git. Saya memasang git pada pelayan dengan menaip ke dalam konsol

apt-get install git

Selepas itu saya perlu mengkonfigurasi muat naik fail. Untuk melakukan ini, saya menaip ke dalam baris arahan

git clone git://github.com/b0tank/bot.git bot

Akibatnya, segala-galanya daripada projek telah dimuat naik ke pelayan. Kesilapan pada peringkat ini ialah saya pada dasarnya membuat folder kedua di dalam folder bot yang sedia ada. Alamat kepada fail kelihatan seperti */bot/bot/index.js

Saya memutuskan untuk mengabaikan masalah ini.

Dan untuk memuatkan perpustakaan telegraf, yang kami minta dalam baris pertama kod, taip arahan ke dalam konsol.

npm install telegraf

8. Bagaimana untuk melancarkan bot

Untuk melakukan ini, semasa berada dalam folder dengan fail (untuk bergerak dari folder ke folder melalui konsol, jalankan arahan format cd bot Untuk memastikan bahawa anda berada di tempat yang anda perlukan, anda boleh memasukkan arahan yang akan memaparkan dalam konsol semua fail dan folder yang ada di sana ls -a

Untuk memulakan, saya masuk ke dalam konsol

node index.js

Jika tiada ralat, semuanya baik-baik saja, bot berfungsi. Cari dia di telegram. Jika terdapat ralat, gunakan pengetahuan anda dari point 1.

9. Bagaimana untuk menjalankan bot di latar belakang

Dengan cepat anda akan menyedari bahawa bot hanya berfungsi apabila anda sendiri duduk di konsol. Untuk menyelesaikan masalah ini saya menggunakan arahan

screen

Selepas ini, skrin dengan beberapa teks akan muncul. Ini bermakna semuanya baik-baik saja. Anda berada di pelayan maya pada pelayan awan. Untuk memahami dengan lebih baik bagaimana semuanya berfungsi - inilah artikelnya. Hanya pergi ke folder anda dan masukkan arahan untuk melancarkan bot

node index.js

10. Cara bot berfungsi dan cara mengembangkan fungsinya

Apakah yang boleh dilakukan oleh bot contoh kami? Dia boleh

bot.start((ctx) => ctx.reply('Welcome!'))

katakan "Selamat datang!" pada permulaan (cuba tukar teks)

bot.help((ctx) => ctx.reply('Send me a sticker'))

sebagai tindak balas kepada arahan standard /help, hantar mesej "Hantar saya pelekat"

bot.on('sticker', (ctx) => ctx.reply(''))

hantar kelulusan sebagai balasan kepada pelekat

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

jawab "Hai" jika mereka menulis "hai" kepadanya
bot.launch()

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

Jika anda melihat kod di github, maka anda akan faham dengan cepat bahawa saya tidak pergi jauh dari fungsi ini. Yang aktif digunakan ialah fungsi ctx.replyWithPhoto Ia membolehkan anda menghantar foto atau gif tertentu sebagai tindak balas kepada teks tertentu.

Sebahagian besar kod itu ditulis oleh kanak-kanak berumur 11-13 tahun, yang saya berikan akses kepada bot tersebut. Mereka memasukkan kes pengguna mereka. Saya rasa mudah untuk mengetahui bahagian mana yang dibuat oleh mereka.

Sebagai contoh, mesej "Jake" akan menerima GIF dengan watak terkenal daripada kartun Adventure Time.

Panduan: cara membuat bot Telegram mudah dalam JS untuk pemula dalam pengaturcaraan

Untuk membangunkan bot dengan lebih lanjut, anda perlu menyambungkan papan kekunci, lihat contoh, contohnya, oleh itu

11. Bagaimana untuk mengemas kini kod dan mulakan semula bot

Jangan lupa bahawa anda perlu mengemas kini kod bukan sahaja pada github, tetapi juga pada pelayan. Ini mudah dilakukan - hentikan bot (tekan ctrl+c),

- masuk ke dalam konsol semasa dalam folder sasaran, git pull
β€” kami melancarkan bot sekali lagi dengan arahan node index.js

AKHIR

Banyak perkara yang diterangkan dalam fail ini akan menjadi sangat jelas kepada pengaturcara lanjutan. Namun, apabila saya sendiri cuba melompat melepasi jurang ke dunia bot dalam satu masa, saya sangat merindui panduan sebegitu. Panduan yang tidak terlepas perkara yang jelas dan mudah untuk mana-mana pakar IT.

Pada masa hadapan, saya merancang siaran tentang cara membuat permohonan pertama anda di ReactNative dalam gaya yang sama, langgan!

Sumber: www.habr.com

Tambah komen