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:
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
2. Bagaimana untuk mendaftar bot?
Ini banyak membantu saya pada mulanya
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
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
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
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
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
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 -
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()
Jika anda melihat kod di 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.
Untuk membangunkan bot dengan lebih lanjut, anda perlu menyambungkan papan kekunci, lihat contoh, contohnya,
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