Min sê hefte berê dest pê kir ku xwe di cîhana IT-ê de bihêlim. Bi ciddî, sê hefte berê min hevoksaziya HTML-ê jî fam nekir, û danasîna min bi zimanên bernamesaziyê re bi bernameyek dibistanê ya li ser Pascal ji 10 sal berê bi dawî bû. Lêbelê, min biryar da ku biçim kampek IT-ê, li wir dê xweş be ku zarok botek çêbikin. Min biryar da ku ew qas dijwar e.
Vê rêwîtiyek dirêj dest pê kir ku tê de min:
- bi Ubuntu re serverek ewr saz kir,
- li GitHub qeydkirî,
- hevoksaziya bingehîn a JavaScript fêr bû,
- bi îngîlîzî û rûsî gelek gotar bixwînin,
- di dawiyê de botek çêkir,
- Di dawiyê de min ev gotara nivîsand.
Encama dawî tiştek wiha xuya bû:
Ez ê tavilê bibêjim ku ev gotarek ji bo destpêkan e - tenê ji bo ku fêm bikin ka meriv çawa tiştên bingehîn ji sifrê dike.
Û di heman demê de - ji bo bernamenûsên pêşkeftî - tenê ji bo ku ew hinekî bikenin.
1. Meriv çawa kodê di JS de binivîse?
Min fêm kir ku bi kêmanî hêjayî fêmkirina hevoksaziya ziman e. Hilbijartin li ser JavaScript ket, tenê ji ber ku gava duyemîn ji bo min ev bû ku ez di ReactNative de serîlêdanek biafirînim. Min dest pê kir
2. Meriv çawa botek tomar dike?
Vê yekê di destpêkê de gelek alîkariya min kir
3. Koda botê çawa xuya dike?
Piştî xwendina gotaran ji bo demek dirêj, min fêhm kir ku hêja ye ku meriv cûreyek pirtûkxaneyek bikar bîne (koda sêyemîn a di forma modulê de) da ku ji xwendina API-a Telegram-ê û afirandina perçeyên mezin ên kodê ji sifirê xeman nebim. Min çarçoveyek dît
3. Meriv çawa ji bo 100 rubleyan servera xweya ewr biafirîne
Piştî gelek lêgerînê, min fêm kir ku emrê 'npm' di wêneya jorîn de rêza fermanê vedigire. Rêza fermanê li her derê ye, lê ji bo ku hûn karibin wê bicîh bikin, hûn hewce ne ku NodePackageManager saz bikin. Pirsgirêk ev bû ku min bi ChromeOS re li ser PixelBookek bername dikir. Ez ê li vir blokek mezin derxim ka ez çawa fêrî Linux bûm - ji bo piran ew vala û nepêwist e. Ger Windows an MacBookek we hebe, jixwe konsolek we heye.
Bi kurtasî, min Linux bi Crostini saz kir.
Lêbelê, di vê pêvajoyê de, min fêm kir ku ji bo ku bot bi domdarî bixebite (û ne tenê dema ku komputera min vekirî ye), ez hewceyê serverek ewr e. Min hilbijart
4. Meriv çawa serverek amade dike ku botek bimeşîne
Piştî wê, min fêm kir ku ez hewce dikim ku peldankek li ser serverê çêkim ku tê de ez ê pelê bi nivîsa kodê bixim. Ji bo kirina vê yekê, di konsolê de (rasterast li ser malperê bi bişkoja "Konsolê Vekirî" ve were xebitandin), ez ketim
mkdir bot
bot - ev bû navê peldanka min. Piştî wê, min npm û Node.js saz kir, ku dê bihêle ez paşê kodê ji pelên bi çareseriya * .js vekim.
sudo apt update
sudo apt install nodejs
sudo apt install npm
Ez bi tundî pêşniyar dikim ku di vê qonaxê de bi konsolê xwe ve têkiliyek bi serverê re saz bikin. Vir
5. Çawa kodê ji bo bota xweya yekem binivîse.
Lê niha ew ji bo min tenê vedîtinek e. Her bername tenê rêzikên nivîsê ye. Ew dikarin li her deverê werin danîn, bi dirêjkirina xwestinê werin hilanîn, û ew e. Hûn rindikin. Min bi kar anî
Min pelek nû çêkir, ku min koda ji mînaka li ser rûpela telegrafê xist nav wê û di pelê index.js de tomar kir (bi gelemperî ne hewce ye ku pelê bi vî rengî were nav kirin, lê ev adetî ye). Girîng - li şûna BOT_TOKEN, mifteya API-ya xwe ji paragrafa duyemîn têxin.
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. Meriv çawa kodê li serverê bi riya github bar dike
Naha min hewce kir ku bi rengekî vê kodê li serverê bar bikim û wê bimeşînim. Ev ji bo min bû dijwariyek. Wekî encamek, piştî gelek ceribandinan, min fêm kir ku ew ê hêsantir be ku meriv pelek li ser github biafirîne ku dihêle hûn kodê bi karanîna fermanek di konsolê de nûve bikin. Min li ser hesabek qeyd kir
7. Meriv çawa pelan li serverê bi riya github part 2 bar dike
Min hewce kir ku bernameyek li ser serverê saz bikim ku pelan ji git dakêşin. Min git li ser serverê bi nivîsandina konsolê saz kir
apt-get install git
Piştî wê min hewce kir ku barkirina pelê mîheng bikim. Ji bo vê yekê, min di rêza fermanê de nivîsand
git clone git://github.com/b0tank/bot.git bot
Wekî encamek, her tişt ji projeyê li serverê hate barkirin. Di vê qonaxê de xeletî ev bû ku min di bingeh de peldankek duyemîn di hundurê peldanka botê ya heyî de çêkir. Navnîşana pelê wekî */bot/bot/index.js xuya bû
Min biryar da ku ez vê pirsgirêkê paşguh bikim.
Û ji bo barkirina pirtûkxaneya telegrafê, ya ku em di rêza yekem a kodê de daxwaz dikin, fermanê li konsolê binivîsin.
npm install telegraf
8. Meriv çawa botek dest pê dike
Ji bo vê yekê, dema ku di peldanka pelê de ye (ji bo ku bi konsolê ve ji peldankê berbi peldankê bigerin, emrê formatê bişopînin cd bot
Ji bo ku hûn pê ewle bin ku hûn li cihê ku hûn hewce ne lê bin, hûn dikarin fermanek têkevin ku dê hemî pel û peldankên ku li wir hene di konsolê de nîşan bide. ls -a
Ji bo destpêkê, ez ketim konsolê
node index.js
Heke xeletiyek tune, her tişt baş e, bot dixebite. Li ser telegramê li wî bigerin. Ger xeletiyek hebe, zanîna xwe ji xala 1-ê bicîh bînin.
9. Meriv çawa botekê di paşerojê de dimeşîne
Pir zû hûn ê fêm bikin ku bot tenê gava ku hûn bi xwe di konsolê de rûniştin dixebite. Ji bo çareserkirina vê pirsgirêkê min ferman bikar anî
screen
Piştî vê yekê, ekranek bi hin nivîsê dê xuya bibe. Ev tê wateya ku her tişt baş e. Hûn li ser serverek virtual li ser serverek ewr in. Ji bo ku çêtir fêm bikin ka ew hemî çawa dixebite -
node index.js
10. Bot çawa dixebite û çawa fonksiyona xwe berfireh dike
Bota mînaka me dikare çi bike? Ew dikare
bot.start((ctx) => ctx.reply('Welcome!'))
bêje "Bi xêr hatî!" di dema destpêkê de (biceribînin ku nivîsê biguherînin)
bot.help((ctx) => ctx.reply('Send me a sticker'))
di bersiva fermana standard / alîkariyê de, peyama "Ji min re çîçek bişîne" bişînin
bot.on('sticker', (ctx) => ctx.reply(''))
di bersivê de erêkirinê bişînin
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
Heke ji wî re "silav" binivîsin bersiv bidin "Hey li wir".
bot.launch()
Ger hûn li kodê binêrin ctx.replyWithPhoto
Ew dihêle hûn di bersiva nivîsarek taybetî de wêneyek an gifek diyarkirî bişînin.
Beşek girîng a kodê ji hêla zarokên 11-13 salî ve hatî nivîsandin, ku min gihîştina botê da wan. Ew ketin doseya bikarhênerê xwe. Ez difikirim ku hêsan e ku meriv bibêje ka kîjan beş ji hêla wan ve hatî çêkirin.
Mînakî, peyama "Jake" dê GIF-ek bi karakterek navdar ji kartona Adventure Time bistîne.
Ji bo pêşdebirina botê bêtir, hûn hewce ne ku klavyeyekê girêdin, mînakan bibînin, mînakî,
11. Çawa kodê nûve bikin û botê ji nû ve bidin destpêkirin
Ji bîr nekin ku hûn hewce ne ku kodê ne tenê li ser github, lê di heman demê de li ser serverê jî nûve bikin. Ev hêsan e ku meriv bike - botê rawestîne (ctrl+c çap bike),
- Di peldanka armancê de têkevin konsolê, git pull
- em bi fermanê dîsa botê dest pê dikin node index.js
DAWÎ
Gelek tiştên ku di vê pelê de têne vegotin dê ji bo bernamenûsên pêşkeftî pir eşkere bin. Lêbelê, gava ku min bi xwe hewl da ku bi yek lingê xwe ji ser qulikê berbi cîhana botan ve biçim, min bi rastî bêriya rêberek wusa kir. Rêbernameyek ku ji bo her pisporek IT-ê tiştên ku eşkere û hêsan in ji bîr nake.
Di pêşerojê de, ez plansaz dikim ku meriv çawa serlêdana xweya yekem a li ser ReactNative bi heman şêwazê çêbike, bibe abone!
Source: www.habr.com