Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

Kuring mimiti immersing sorangan di dunya IT ngan tilu minggu ka tukang. Serius, tilu minggu ka tukang kuring henteu ngartos sintaksis HTML, sareng perkenalan kuring kana basa pamrograman ditungtungan ku kurikulum sakola ngeunaan Pascal ti 10 taun ka pengker. Najan kitu, kuring mutuskeun pikeun buka hiji camp IT, dimana eta bakal nice pikeun barudak nyieun bot a. Kuring mutuskeun yén éta boro hésé.

Ieu ngamimitian perjalanan panjang dimana kuring:

  • nyebarkeun server awan sareng Ubuntu,
  • didaptarkeun dina GitHub,
  • diajar sintaksis JavaScript dasar,
  • maca ton artikel dina basa Inggris sareng Rusia,
  • ahirna nyieun bot,
  • Kuring tungtungna nulis artikel ieu.

Hasil ahir katingali sapertos kieu:

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

Kuring bakal langsung nyarios yén ieu mangrupikeun tulisan pikeun pamula - ngan ukur ngartos kumaha ngalakukeun hal dasar ti mimiti.

Sareng ogé - pikeun programer canggih - ngan ukur ngajantenkeun aranjeunna seuri sakedik.

1. Kumaha cara nyerat kode dina JS?

Kuring ngarti yén éta patut sahenteuna ngartos sintaksis basa munggaran. Pilihan murag kana JavaScript, ngan kusabab lengkah saterusna pikeun kuring nya éta nyieun hiji aplikasi dina ReactNative. Kuring dimimitian ku tangtu on Codecademy sarta pohara delighted. 7 dinten munggaran gratis. proyék nyata. Abdi nyarankeun. Ngalengkepan éta nyandak ngeunaan 25 jam. Kanyataanna, teu sakabéh éta mangpaat. Ieu naon struktur tangtu kasampak kawas jeung blok kahiji di jéntré.

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

2. Kumaha carana ngadaptar bot?

Ieu mantuan kuring pisan di awal Artikel ieu ti blog of a Archakov tangtu. Anjeunna nyapek awal pisan. Tapi hal utama anu aya parentah pikeun ngadaptar bot. Abdi teu bisa nulis eta hadé, sarta saprak ieu teh bagian panggampangna, Kuring ngan bakal nulis gist nu. Anjeun kedah nyiptakeun bot sareng kéngingkeun API na. Hal ieu dilakukeun ngaliwatan bot sejen - @BotFather. Milarian anjeunna dina telegram, nyerat anjeunna, tuturkeun jalan anu saderhana sareng kéngingkeun (simpen!) Konci API (ieu mangrupikeun sakumpulan nomer sareng hurup). Ieu datang dina gunana engké.

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

3. Kumaha carana sangkan kode bot?

Saatos ngulik tulisan pikeun waktos anu lami, kuring sadar yén éta patut ngagunakeun sababaraha jinis perpustakaan (kode pihak katilu dina format modul) ku kituna henteu kedah hariwang ngeunaan diajar API Telegram sareng nyiptakeun potongan kode anu ageung ti mimiti. Kuring manggihan kerangka telegraf, anu kedah kumaha waé disambungkeun kana hal anu nganggo npm atanapi benang. Ieu kasarna kumaha kuring ngartos lajeng naon deployment of a bot diwangun ku. Seuri di dieu. Abdi moal gelo. Conto-conto di handapeun halaman paling ngabantosan kuring nalika nyiptakeun bot anu salajengna:

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

3. Kumaha carana nyieun server awan sorangan pikeun 100 rubles

Saatos seueur milarian, kuring sadar yén paréntah 'npm' dina gambar di luhur ngarujuk kana garis paréntah. Garis paréntah aya dimana-mana, tapi pikeun ngalaksanakeunana, anjeun kedah masang NodePackageManager. Masalahna éta kuring program dina PixelBook sareng ChromeOS. Kuring bakal skip dieu blok badag ngeunaan kumaha kuring diajar Linux Ubuntu - pikeun kalolobaan éta kosong tur teu perlu. Upami anjeun gaduh Windows atanapi MacBook, anjeun parantos gaduh konsol.

Sacara ringkes, kuring masang Linux liwat Crostini.

Nanging, dina prosésna, kuring sadar yén pikeun bot tiasa dianggo terus-terusan (teu ngan ukur nalika komputer kuring hurung), kuring peryogi server awan. Abdi milih vscale.io Kuring spent 100 rubles jeung meuli server Ubuntu cheapest (tingali gambar).

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

4. Kumaha nyiapkeun server pikeun ngajalankeun bot

Saatos éta, kuring sadar yén kuring kedah ngadamel sababaraha jinis folder dina server dimana kuring bakal nempatkeun file sareng téks kode. Jang ngalampahkeun ieu, dina konsol (ngajalankeun langsung dina ramatloka ngaliwatan tombol "Open Console"), kuring asup

mkdir bot

bot - ieu janten nami folder kuring. Sanggeus éta, abdi dipasang npm na Node.js, nu bakal ngidinan kuring lajeng ngajalankeun kode tina file kalawan * .js resolusi

sudo apt update
sudo apt install nodejs
sudo apt install npm

Abdi nyarankeun pisan nyetél sambungan ka server ngaliwatan konsol anjeun dina tahap ieu. Ieuh parentah Ieu bakal ngidinan Anjeun pikeun digawekeun ku server langsung ngaliwatan konsol komputer Anjeun.

5. Kumaha carana nulis kode pikeun bot munggaran anjeun.

Tapi ayeuna éta ngan hiji pamanggihan keur kuring. Program naon waé ngan ukur garis téks. Éta tiasa diselapkeun dimana waé, disimpen kalayan ekstensi anu dipikahoyong, sareng éta. Anjeun geulis. Kuring dipaké atom, tapi kanyataanana, Anjeun ngan bisa nulis dina notepad baku. Hal utama nyaéta pikeun ngahemat file engké dina ekstensi anu dipikahoyong. Éta sapertos nyerat téks dina Word sareng nyimpen éta.

Kuring nyieun file anyar, nu kuring diselapkeun kode tina conto dina kaca telegraf tur disimpen dina file index.js (sacara umum teu perlu ngaranan file ku cara éta, tapi ieu téh adat). Penting - tibatan BOT_TOKEN, selapkeun konci API anjeun tina paragraf kadua.

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. Kumaha carana unggah kode ka server via github

Ayeuna kuring kedah kumaha waé unggah kode ieu ka server sareng ngajalankeunana. Ieu janten tantangan pikeun kuring. Hasilna, sanggeus loba cobaan, abdi sadar yen eta bakal leuwih gampang nyieun file on github nu ngidinan Anjeun pikeun ngapdet kode ngagunakeun paréntah dina konsol nu. Kuring ngadaptar hiji akun dina github jeung tuh proyék anyar, dimana kuring unggah file. Saatos éta, kuring kedah terang kumaha nyetél unggah file tina akun kuring (buka!) Ka server dina folder bot (upami anjeun ujug-ujug ngantunkeun, nyerat cd bot).

7. Kumaha carana unggah file ka server via github bagian 2

Abdi peryogi masang program dina server anu bakal ngaunduh file tina git. Kuring dipasang git dina server ku ngetikkeun kana konsol nu

apt-get install git

Saatos éta kuring kedah ngonpigurasikeun unggah file. Jang ngalampahkeun ieu, kuring ngetik kana garis paréntah

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

Hasilna, sagalana ti proyék ieu diunggah ka server. Kasalahan dina tahap ieu nyaéta kuring dasarna ngadamel folder kadua di jero folder bot anu parantos aya. Alamat kana file kasampak kawas */bot/bot/index.js

Kuring mutuskeun pikeun malire masalah ieu.

Sareng pikeun ngamuat perpustakaan telegraf, anu urang nyuhunkeun dina baris kahiji kode, ketik paréntah kana konsol.

npm install telegraf

8. Kumaha ngajalankeun bot

Jang ngalampahkeun ieu, bari dina polder sareng file (pikeun mindahkeun tina polder ka polder via konsol, jalankeun paréntah format cd bot Pikeun mastikeun yén anjeun dimana anjeun kedah, anjeun tiasa ngalebetkeun paréntah anu bakal ditingalikeun dina konsol sadaya file sareng polder anu aya. ls -a

Pikeun ngamimitian, kuring asup kana konsol

node index.js

Upami teu aya kasalahan, sadayana henteu kunanaon, bot damel. Pilari anjeunna dina telegram. Upami aya kasalahan, larapkeun pangaweruh anjeun ti titik 1.

9. Kumaha ngajalankeun bot di tukang

Rada gancang anjeun bakal nyadar yén bot ngan jalan mun anjeun sorangan linggih dina konsol nu. Pikeun ngajawab masalah ieu kuring dipaké paréntah

screen

Saatos ieu, layar sareng sababaraha téks bakal muncul. Ieu hartosna sadayana saé. Anjeun dina server maya dina server awan. Pikeun ngartos langkung saé kumaha éta sadayana jalan - ieu mangrupikeun tulisan. Ngan buka polder anjeun sareng lebetkeun paréntah pikeun ngaluncurkeun bot

node index.js

10. Kumaha bot jalan na kumaha rék dilegakeun pungsionalitasna

Naon anu tiasa dilakukeun ku conto bot urang? Manehna bisa

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

ucapkeun "Wilujeng sumping!" dina momen mimiti (coba ngarobah téks)

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

pikeun ngabales paréntah standar / pitulung, kirimkeun pesen "Kirimkeun kuring stiker"

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

ngirim persetujuan dina respon kana stiker

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

ngajawab "Hei aya" lamun maranéhna nulis "hi" ka anjeunna
bot.launch()

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

Lamun nempo kode di github, teras anjeun bakal gancang ngartos yén kuring henteu jauh pisan tina fungsi ieu. Anu aktip dianggo nyaéta fungsi ctx.replyWithPhoto Éta ngamungkinkeun anjeun ngirim poto atanapi gif anu khusus pikeun ngaréspon kana téks anu khusus.

Bagian signifikan tina kode ieu ditulis ku barudak umur 11-13, ka saha kuring masihan aksés ka bot. Aranjeunna diasupkeun pamaké-kasus maranéhanana. Jigana éta gampang pikeun ngabejaan bagian mana anu dijieun ku aranjeunna.

Salaku conto, pesen "Jake" bakal nampi GIF kalayan karakter anu kasohor tina kartun Adventure Time.

Pituduh: kumaha carana ngadamel bot Telegram saderhana di JS pikeun pamula dina program

Pikeun ngembangkeun bot langkung jauh, anjeun kedah nyambungkeun keyboard, tingali conto, contona, di dieu

11. Kumaha carana ngapdet kode jeung balikan deui bot

Tong hilap yén anjeun kedah ngapdet kodeu sanés ngan ukur dina github, tapi ogé dina server. Ieu gampang dilakukeun - ngeureunkeun bot (pencét ctrl + c),

- asupkeun kana konsol bari dina folder target, git pull
- urang ngajalankeun bot deui kalayan paréntah node index.js

TUNGTUNG

Seueur hal anu dijelaskeun dina file ieu bakal écés pisan pikeun programer maju. Najan kitu, nalika kuring sorangan nyoba luncat ngaliwatan chasm ka dunya bot dina hiji swoop murag, Kuring bener sono pituduh misalna. Pituduh anu henteu sono kana hal-hal anu atra sareng saderhana pikeun spesialis IT.

Dina mangsa nu bakal datang, Kuring keur perencanaan hiji pos ngeunaan kumaha carana sangkan aplikasi munggaran anjeun dina ReactNative dina gaya anu sarua, ngalanggan!

sumber: www.habr.com

Tambahkeun komentar