á¡áá¯ááºáá®áá±á¬ááá²ááᯠááœááºáá²á·áá²á·áá¯á¶ážáááºáá±á¬ááºá á ááŒá®áž ááŸá áºááŒáŸá¯ááºáá²á·áááºá áá±ážáá±ážáááºáááºááŒá±á¬áááẠááœááºáá²á·áá²á·áá¯á¶ážáááºáá±á¬ááºá HTML syntax ááá¯áá±á¬áẠáá¬ážááááºáá²á·áá² ááœááºáá²á·áá²á· 10 ááŸá áºá Pascal ááŸá¬ áá»á±á¬ááºážáááºááá¯ážááœáŸááºážáááºážáá áºáá¯áá²á· áááá¯ááááºážáááºážáá¬áá¬á áá¬ážááœá±ááᯠááááºáááºááŒááºážáá²á· á¡áá¯á¶ážáááºáá²á·áá«áááºá áá«áá±ááá·áº ááá±ážááœá±á¡ááœáẠbot áá áºáá¯áá¯ááºááᬠá¡áááºááŒá±ááá·áº IT á áááºážááᯠááœá¬ážááá¯á· áá¯á¶ážááŒááºááá¯ááºáááºá áááºáá±á¬á·áááºáááºááá¯á· áá¯á¶ážááŒááºááá¯ááºáááºá
áá®ááá®ážááŸááºááŒá®ážááᯠáá»áœááºáá±á¬áºá áááºáá²á·áááº
- Ubuntu ááŒáá·áº cloud server ááᯠááŒáá·áºáá»ááºááŒá®ážá
- GitHub ááœáẠá á¬áááºážááœááºážá
- á¡ááŒá±áᶠJavaScript syntax ááᯠáááºáá°ááŒá®ážá
- á¡ááºá¹áááááºááŸáá·áº áá¯ááŸá¬ážáá¬áá¬ááŒáá·áº áá±á¬ááºážáá«ážáá»á¬ážá áœá¬ááᯠáááºááŒá®ážá
- áá±á¬ááºáá¯á¶ážáá±á¬á· bot áá áºáá¯áá¯ááºááá¯ááºáááºá
- áá«áá±á¬ááºáá¯á¶ážáá±á¬á·áá®áá±á¬ááºážáá«ážááá¯áá±ážáá²á·áááºá
áá±á¬ááºáá¯á¶ážááááºááẠá€áá²á·ááá¯á· ááŒá áºáááº-
áá®áá±á¬ááºážáá«ážáᬠá¡á
ááá±á
ááá¯á· á¡ááŒá±áá¶á¡áá¬ááœá±ááᯠáááºááá¯áá¯ááºáá±á¬ááºáááá²ááá¯áᬠáá¬ážáááºááá¯á· áá®áá±á¬ááºážáá«ážáᬠá
áááºáá°áá»á¬ážá¡ááœáẠáá±á¬ááºážáá«ážáá
áºáá¯ááºááŒá
áºááŒá±á¬ááºáž áá»ááºáá»ááºážááŒá±á¬áá«áááºá
ááá¯á·á¡ááŒáẠ- á¡ááá·áºááŒáá·áºáááá¯ááááºáá¬áá»á¬ážá¡ááœáẠ- áá°ááá¯á·ááá¯á¡áááºážáááºáááºáá±á¬á á±áá¯á¶áá«áá²á
1. JS ááœáẠáá¯ááºáá±ážáááºážá
á¡áááºážáá¯á¶ážáá±á¬á· áá¬áá¬á
áá¬ážáá²á· syntax ááᯠá¡áááºáá¬ážáááºááá»áá¯ážáááºáááºááá¯á· áá»áœááºáá±á¬áºáá¬ážáááºáá«áááºá áá»áœááºá¯ááºá¡ááœáẠáá±á¬ááºáá
áºááá·áºááŸá¬ ReactNative ááœáẠá¡ááºááá®áá±ážááŸááºážáá
áºáᯠáááºáá®ážáááºááŒá
áºáá±á¬ááŒá±á¬áá·áº JavaScript ááœáẠááœá±ážáá»ááºááŸá¯ááŸá¬ áá»áááºážááœá¬ážáá«áááºá áá«ááŸáá·áºá¡áá°á
áááºáá²á·áááºá
2. bot áá
áºáá¯ááᯠáááºááᯠááŸááºáá¯á¶áááºáááá²á
áá«á á¡á
ááá¯ááºážááŸá¬ á¡áá»á¬ážááŒá®áž áá°áá®áá±ážáá²á·áááºá
3. bot áá¯ááºá áááºááá¯áá¯á¶á
á¶áá²á
áá±á¬ááºážáá«ážáá»á¬ážááᯠá¡áá»áááºá¡áá±á¬áºááŒá¬áá±á·áá¬ááŒá®ážáá±á¬ááºá Telegram API ááá¯áá±á·áá¬ááŒá®áž áá¯ááºá¡áá»á¬ážá¡ááŒá¬ážááᯠá¡á
ááá±áááºáá®ážááŒááºážá¡ááœáẠá
áááºáá°á
áá¬áááá¯á
á±áááºá¡ááœáẠá
á¬ááŒáá·áºááá¯ááºáá
áºáá»áá¯ážáá»áá¯áž (áááááá«áá®áá¯ááºááᯠmodule áá±á¬áºáááº) á¡áá¯á¶ážááŒá¯ááá»áá¯ážáááºááŒá±á¬ááºáž ááááŸáááá¯ááºááá«áááºá áá±á¬ááºááá¯ááœá±á·áááºá
3. ááá·áºááá¯ááºááá¯áẠcloud server ááᯠ100 áá°áááºááŒáá·áº áááºáá®ážáááºáž
á¡áá»á¬ážááŒá®ážááŸá¬ááœá±ááŒá®ážáá±á¬ááºá á¡áá±á«áºááá¯á¶áá²á 'npm' command ááẠcommand line ááá¯áááºááœáŸááºážááŒá±á¬ááºážáá«ááá±á¬áá±á«ááºáá¬áááºá command line ááẠáá±áá¬ááá¯ááºážááœááºááŸááá±á¬áºáááºáž áááºážááᯠexecute áá¯ááºáááºá¡ááœááºá áááºááẠNodePackageManager ááᯠinstall áá¯ááºáááºááá¯á¡ááºáááºá ááŒá¿áá¬ááŸá¬ ChromeOS ááŒáá·áº PixelBook áá±á«áºááœáẠáááá¯ááááºáá±ážáá±ááŒááºážááŒá áºáááºá Linux ááᯠáááºáá°áá¯á¶á¡ááŒá±á¬ááºáž ááŒá®ážáá¬ážáá±á¬ ááá±á¬ááºáá áºáá¯ááᯠá€áá±áá¬ááœáẠáá»á±á¬áºááœá¬ážáá«ááẠ- á¡áá»á¬ážá á¯ááŸá¬ áááºážááẠááá¬ááŒá áºááŒá®áž áááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá ááá·áºááœáẠWindows ááá¯á·ááá¯áẠMacBook ááŸááá«áá ááá·áºááœáẠááœááºááá¯ážááºáá áºáᯠááŸáááŸáá·áºááŒá®ážááŒá áºáááºá
á¡ááá¯áá»á¯ááºá¡á¬ážááŒáá·áºá áá« Cristini ááŸáá áºááá·áº Linux ááá¯ááá·áºááœááºážáá²á·áááºá
ááá¯á·áá±á¬áºáááºážá áá¯ááºáááºážá
ááºááœááºá bot ááẠá¡áááºáááŒááºá¡áá¯ááºáá¯ááºáááºá¡ááœáẠ(áá»áœááºá¯ááºáááœááºáá»á°áá¬ááá¯ááœáá·áºáá¬ážáá¯á¶áá¬áá) cloud server áá
áºáá¯ááá¯á¡ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá±á¬áá±á«ááºáá«áááºá áá»áœááºáá±á¬áºááœá±ážáááº
4. bot áá
áºáá¯áááºáááºáááºáá¬áá¬ááá¯ááŒááºáááºáááºáž
ááá¯á·áá±á¬ááºááœááºá áá»áœááºá¯ááºááẠáá¯ááºá á¬áá¬ážááŒáá·áº ááá¯ááºááá¯ááá·áºááá·áº áá¬áá¬ááœáẠááá¯áá«áá»áá¯ážááŒá¯áá¯ááºááẠááá¯á¡ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá±á¬áá±á«ááºáá²á·áááºá áá«ááá¯áá¯ááºááá¯á·á ááœááºááá¯ážááºáá²ááŸá¬ (âOpen consoleâ ááá¯ááºááá±áááá·áº áááºááá¯ááºááᯠááá¯ááºááá¯áẠrun) áá«áááºááœá¬ážáááºá
mkdir bot
bot - áá«á áá«á·ááá¯áá«áá²á· áá¬áááºááŒá áºáá¬áááºá ááá¯á·áá±á¬ááºááœááºá áá»áœááºá¯ááºááẠnpm ááŸáá·áº Node.js ááᯠááá·áºááœááºážáá²á·ááŒá®ážá ááá¯á·áá±á¬áẠ*.js resolution ááŸááá±á¬ ááá¯ááºáá»á¬ážá០áá¯ááºááᯠrun ááá¯ááºá á±áááºááŒá áºáááºá
sudo apt update
sudo apt install nodejs
sudo apt install npm
á€á¡ááá·áºááœáẠáááºá ááœááºááá¯ážááºááŸáááá·áº áá¬áá¬ááá¯á· áá»áááºáááºááŸá¯áá
áºáá¯ááᯠá
áááºááẠáá»áœááºá¯áẠá¡áá°ážá¡ááŒá¶ááŒá¯ááá¯áá«áááºá áá®ááŸá¬
5. ááá·áºááááá¯á¶áž bot á¡ááœáẠáá¯ááºááᯠáááºááá¯áá±ážáááá²á
áá«áá±ááá·áº á¡áá¯áá±á¬á· áá«áᬠáá«á·á¡ááœáẠááŸá¬ááœá±ááœá±á·ááŸáááŸá¯áá
áºáá¯áá«áá²á áááºááá·áºáááá¯ááááºáááᯠá
á¬áá¬ážááá¯ááºážáá»á¬ážáá¬ááŒá
áºáááºá áááºážááá¯á·ááᯠáááºááá·áºáá±áá¬ááœááºáááᯠááá·áºááœááºážááá¯ááºáááºá ááá¯áá»ááºáá±á¬ extension ááŒáá·áº ááááºážáááºážááá¯ááºáááºá áá«áá«áá²á áááºážááŸáááºá áá«áá¯á¶ážáá²á·áááº
Telegraf á á¬áá»ááºááŸá¬áá±á«áºááŸá ááá°áá¬á០áá¯ááºááᯠááá·áºááœááºážááŒá®áž index.js ááá¯ááºááœáẠááááºážáááºážáá¬ážáá±á¬ ááá¯ááºá¡áá áºáá áºáᯠááŒá¯áá¯ááºáá²á·ááẠ(áá±áá¯áá»á¡á¬ážááŒáá·áº ááá¯ááºááᯠááá¯áááºážá¡ááá¯ááºáž áá¬áááºáá±ážááẠáááá¯á¡ááºáá±á¬áºáááºáž á€áááºááŸá¬ áá¯á¶ážá á¶ááŒá áºáááº)á á¡áá±ážááŒá®ážááẠ- BOT_TOKEN á¡á á¬áž áá¯áááá á¬ááá¯ááºá០áááºá API áá®ážááᯠááá·áºáá«á
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. áá¯ááºááᯠgithub ááŸáá áºááá·áº áá¬áá¬ááá¯á· á¡ááºáá¯ááºáá¯ááºáááºáž
ááᯠáá»áœááºá¯ááºááẠá€áá¯ááºááᯠáá¬áá¬ááá¯á· áá
áºáááºážáááºážááŒáá·áº á¡ááºáá¯ááºáá¯ááºááŒá®áž áááºážááᯠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá áá«á áá»áœááºáá±á¬á·áºá¡ááœáẠá
áááºáá±á«áºááŸá¯áá
áºáᯠááŒá
áºáá¬áá²á·áá«áááºá ááááºá¡áá±ááŒáá·áºá áá»á¬ážá
áœá¬áá±á¬á¡áá»ááºá¡áááºážááŒá®ážáá±á¬ááºá console ááŸá command ááá¯á¡áá¯á¶ážááŒá¯á code ááᯠupdate áá¯ááºáááºááœáá·áºááŒá¯áá±á¬ github ááœááºááá¯ááºáá
áºáá¯áááºáá®ážáááºááá¯ááá¯ááœááºáá°áááá·áºáááºááá¯áá¬ážáááºáá²á·áááºá á¡áá±á¬áá·áºáá
áºáᯠááŸááºáá¯á¶áááºáá²á·áááºá
7. github á¡ááá¯ááºáž 2 ááŸáá áºááá·áº áá¬áá¬ááá¯á· ááá¯ááºáá»á¬áž ááá¯ááºáá»á¬áž á¡ááºáá¯ááºáá¯ááºáááºáž
git ááŸááá¯ááºáá»á¬ážááá¯áá±á«ááºážáá¯ááºáá¯ááºááá·áºáá¬áá¬ááœááºáááá¯ááááºáá áºáá¯ááá·áºááœááºážáááºááá¯á¡ááºáááºá ááœááºááá¯ážááºááœáẠá á¬ááá¯ááºááŒááºážááŒáá·áº áá¬áá¬ááœáẠgit ááᯠááá·áºááœááºážáá²á·áááºá
apt-get install git
ááá¯á·áá±á¬áẠááá¯ááºááᯠá¡ááºáá¯ááºáá¯ááºááẠááŒááºáááºááẠááá¯á¡ááºáá«áááºá áá®ááá¯áá¯ááºááá¯á·á áá« command line ááŸá¬ááá¯ááºááá·áºáá«á
git clone git://github.com/b0tank/bot.git bot
ááááºá¡áá±ááŒáá·áºá ááá±á¬áá»ááºááŸá¡áá¬á¡á¬ážáá¯á¶ážááᯠáá¬áá¬ááá¯á· á¡ááºáá¯ááºáá¯ááºáá²á·áááºá áá®á¡ááá·áºááŸá¬ á¡ááŸá¬ážááá±á¬á· ááŸáááŒá®ážáá¬áž bot ááá¯ááºááœá²áá²ááŸá¬ áá¯áááááá¯ááºááœá²áá áºáᯠáá¯ááºáá¬ážááá¯á·áá«áá²á ááá¯ááºáááááºá á¬ááẠ*/bot/bot/index.js ááŸáá·áºáá°áááºá
áá®ááŒá¿áá¬ááᯠáá»á áºáá»á°ááŸá¯ááá¯á· áá¯á¶ážááŒááºááá¯ááºáááºá
áá¯ááºááááá á¬ááŒá±á¬ááºážááœááºáá»áœááºá¯ááºááá¯á·áá±á¬ááºážááá¯ááá·áº telegraf á á¬ááŒáá·áºááá¯ááºááá¯áááºáááºá ááœááºááá¯ážááºáá²ááá¯á· command ááá¯ááá¯ááºááá·áºáá«á
npm install telegraf
8. bot áá áºáá¯ááᯠáááºááá¯ááœáá·áºááá²á
áááºážááá¯áá¯ááºáá±á¬ááºáááºá ááá¯ááºááŸáá·áºá¡áá°ááá¯ááºááœá²ááœááºááŸááá±á
áẠ(ááœááºááá¯ážááºááŸáá
áºááá·áº ááá¯ááºááœá²áá
áºáá¯ááá¯á· ááá¯áá«áá
áºáá¯ááá¯á·ááœáŸá±á·áááºá áá±á¬áºáááºá¡áááá·áºááᯠáá¯ááºáá±á¬ááºáá«á cd bot
áááºááá¯á¡ááºááá·áºáá±áá¬ááᯠáá±áá»á¬á
á±áááºá ááœááºááá¯ážááºááœááºááŸááá±á¬ ááá¯ááºáá»á¬ážááŸáá·áº ááá¯áá«áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒáááá·áº command ááᯠááá¯ááºááá·áºááá¯ááºáááºá ls -a
á áááºáááºá áá»áœááºá¯ááºááẠááœááºááá¯ážááºáá²ááá¯á· áááºáá²á·áááºá
node index.js
á¡ááŸá¬ážá¡ááœááºážáááŸááá»áŸááºá á¡á¬ážáá¯á¶ážá¡áááºááŒá±áááºá bot áááºá¡áá¯ááºáá¯ááºáááºá áá°á·ááᯠááŒá±ážáááºážá á¬ááŸá¬ ááŸá¬ááŒáá·áºáááºá á¡ááŸá¬ážá¡ááœááºážááŸááá«á á¡áá»áẠá á០ááá·áºá¡ááááá¬ááᯠá¡áá¯á¶ážáá»áá«á
9. áá±á¬ááºáá¶ááœáẠbot áá áºáá¯ááᯠáááºááᯠrun ááá²á
áááºááá¯ááºááá¯áẠconsole ááœááºááá¯ááºáá±áá»áááºááœáẠbot áááºá¡áá¯ááºáá¯ááºáááºááá¯á¡áá±á¬áºáá±ážááŒááºááŒááºááá±á¬áá±á«ááºáááá·áºáááºá áá®ááŒá¿áá¬ááá¯ááŒá±ááŸááºážááá¯á· áá« command ááá¯áá¯á¶ážáááºá
screen
áááºážááŒá®ážáá±á¬ááºá á
á¬áá¬ážá¡áá»áá¯á·áá«áá±á¬áá»ááºááŸá¬ááŒááºáá
áºáá¯áá±á«áºáá¬áááá·áºáááºá ááá¯ááá¯áááºááŸá¬ á¡áá¬á¡á¬ážáá¯á¶áž á¡áááºááŒá±áá«áááºá áááºááẠcloud áá¬áá¬áá±á«áºááœáẠvirtual áá¬áá¬áá±á«áºááœáẠááŸááá±áááºá áááºááá¯á¡áá¯ááºáá¯ááºáááºááá¯áá¬ááᯠááá¯áá¬ážáááºááá¯á·-
node index.js
10. áá±á¬á·ááºá¡áá¯ááºáá¯ááºáá¯á¶ááŸáá·áº áááºážááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠáá»á²á·ááœááºáá¯á¶
áá»áœááºá¯ááºááá¯á·áá¥ááᬠbot ááẠá¡áááºá¡áá¬áá¯ááºáá±á¬ááºááá¯ááºááááºážá áá°áá¯ááºááá¯ááº
bot.start((ctx) => ctx.reply('Welcome!'))
"ááŒáá¯ááá¯áá«áááº!" á¡á ááœáẠ(á á¬áá¬ážááŒá±á¬ááºážááŒáá·áºáá«)
bot.help((ctx) => ctx.reply('Send me a sticker'))
á á¶/help á¡áááá·áºááᯠáá¯á¶á·ááŒááºááá·áºá¡áá±ááŒáá·áº âáá«á·ááá¯á áá áºáá¬áá áºáᯠááá¯á·áá«â áᯠá á¬ááá¯áá±ážááá¯á·áá«á
bot.on('sticker', (ctx) => ctx.reply(''))
á áá áºáá¬ááᯠáá¯á¶á·ááŒááºááŸá¯ááŒáá·áº á¡áááºááŒá¯áá»áẠáá±ážááá¯á·áá«á
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
âááá¯ááºážâ ááá¯á·áá±ážááẠâáá±ážâ ááá¯á·ááŒá±áá«á
bot.launch()
áá¯ááºááá¯ááŒáá·áºááá¯ááºááẠctx.replyWithPhoto
áááºážááẠááá·áºá¡á¬áž áááºááŸááºáá¬ážáá±á¬ áá¬ááºáá¯á¶ ááá¯á·ááá¯áẠgif ááᯠáá®ážááŒá¬ážá
á¬áá¬ážáá
áºáá¯ááá¯á· áá¯á¶á·ááŒááºááẠááœáá·áºááŒá¯áááºá
áá¯ááºá á¡áá±ážáá«áá±á¬ á¡á áááºá¡ááá¯ááºážááᯠáá»áœááºá¯áẠáá±á¬á·ááºááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáá±á¬ á¡ááẠ11-13 ááŸá áºááŸá ááá±ážáá»á¬ážá áá±ážáá¬ážáá²á·áááºá áá°ááá¯á·á áá°ááá¯á·áá²á· user-case áá²ááᯠáááºááœá¬ážáááºá áá°ááá¯á·áá¯ááºáá¬ážáá²á· á¡ááá¯ááºážááᯠááŒá±á¬ááᬠááœááºáááºáááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá "Jake" ááẠáá¬ááœááºáž Adventure Time á០áá¬áááºááŒá®ážáá¬ááºáá±á¬ááºáá áºáá¯áá«ááá·áº GIF ááᯠáááºáá¶áááŸááááºááŒá áºáááºá
bot ááᯠááá¯ááá¯ááœá¶á·ááŒáá¯ážááá¯ážáááºá
á±áááºá áááºááẠáá®ážáá¯ááºáá
áºáá¯ááᯠáá»áááºáááºááẠááá¯á¡ááºáááºá á¥ááá¬áá»á¬ážááá¯ááŒáá·áºáá«á á¥ááá¬á
11. áá¯ááºááᯠá¡ááºááááºáá¯ááºáááºážááŸáá·áº áá±á¬á·ááºááᯠááŒááºáááºá áááºáááº
áá¯ááºááᯠgithub ááœááºáá¬áá áá¬áá¬ááœááºáá« á¡ááºááááºáá¯ááºááẠááá¯á¡ááºááŒá±á¬ááºáž ááá±á·áá«ááŸáá·áºá áá¯ááºááᬠááœááºáá«ááẠ- bot ááᯠáááºááá¯ááºáá« (ctrl+c) ááᯠááŸáááºáá«á
- áá
áºááŸááºááá¯áá«ááœááºááŸááá±á
áẠconsole áá²ááá¯á·áááºáá«á git pull
- áá»áœááºá¯ááºááá¯á·ááẠcommand ááŒáá·áº bot ááá¯ááŒááºááœáá·áºáááºá node index.js
á¡áá¯á¶áž
á€ááá¯ááºááœááºáá±á¬áºááŒáá¬ážááá·áºá¡áá¬áá»á¬ážá áœá¬ááẠá¡ááá·áºááŒáá·áºáááá¯ááááºáá¬áá»á¬ážá¡ááœáẠá¡ááœááºáááºááŸá¬ážáá«áááá·áºáááºá ááá¯á·áá±á¬áºá áá»áœááºá¯ááºááá¯ááºááá¯áẠáá±á¬á·ááºáá±á¬ááá²ááá¯á· áááŸáááºááá¯áž áá¯ááºáááºážááẠááŒáá¯ážá á¬ážáá±á¬á¡áá«á ááá¯ááá¯á·áá±á¬ áááºážááœáŸááºáá»ááºááᯠá¡ááŸááºáááẠááœááºááœá¬ážáá«áááºá IT áá»áœááºážáá»ááºáá°ááá¯ááºážá¡ááœáẠáááá¬áááºááŸá¬ážááŒá®áž ááá¯ážááŸááºážááá·áºá¡áá¬áá»á¬ážááᯠáááºáááœááºá á±áá² áááºážááœáŸááºáá»ááºá
áá±á¬ááºááœááºá ReactNative ááœáẠáááºáááááá¯á¶ážáá»áŸá±á¬ááºááœáŸá¬ááᯠáá¯á¶á
á¶áá°áá¯á¶á
á¶ááŒáá·áº áááºááá¯á·ááŒá¯áá¯ááºááááºá¡ááŒá±á¬ááºáž ááá¯á·á
áºáá
áºáá¯á
á®á
ááºáá±áá«áááºá
source: www.habr.com