ืืชืืืชื ืืฉืงืืข ืืขืืื ื-IT ืจืง ืืคื ื ืฉืืืฉื ืฉืืืขืืช. ืืจืฆืื ืืช, ืืคื ื ืฉืืืฉื ืฉืืืขืืช ืืคืืื ืื ืืื ืชื ืืช ืชืืืืจ HTML, ืืืืงืืื ืฉืื ืืฉืคืืช ืชืื ืืช ืืกืชืืืื ืืชืืื ืืช ืืืืืืื ืืืืช ืืกืคืจ ืขื ืคืกืงื ืืืคื ื 10 ืฉื ืื. ืขื ืืืช, ืืืืืชื ืืืืช ืืืื ื IT, ืฉื ืืืื ื ืืื ืืืืืื ืืขืฉืืช ืืื. ืืืืืชื ืฉืื ืื ืื ืื ืงืฉื.
ืื ืืชืืื ืืกืข ืืจืื ืฉืื ืื ื:
- ืคืจืกื ืฉืจืช ืขื ื ืขื ืืืืื ืื,
- ืจืฉืื ื-GitHub,
- ืืื ืชืืืืจ JavaScript ืืกืืกื,
- ืงืจื ืืืื ืืืืจืื ืืื ืืืืช ืืืจืืกืืช,
- ืกืืฃ ืกืืฃ ืขืฉื ืืื,
- ืกืืฃ ืกืืฃ ืืชืืชื ืืช ืืืืืจ ืืื.
ืืชืืฆืื ืืกืืคืืช ื ืจืืชื ืืขืจื ืื:
ืื ื ืืืื ืืื ืฉืื ืืืืจ ืืืชืืืืื - ืจืง ืืื ืืืืื ืืื ืขืืฉืื ืืืจืื ืืกืืกืืื ืืืคืก.
ืืื - ืืืชืื ืชืื ืืชืงืืืื - ืจืง ืืื ืืืฆืืืง ืืืชื ืงืฆืช.
1. ืืื ืืืชืืื ืงืื ื-JS?
ืืื ืชื ืฉืืืื ืืคืืืช ืืืืื ืงืืื ืืช ืืชืืืืจ ืฉื ืืฉืคื. ืืืืืจื ื ืคืื ืขื JavaScript, ืคืฉืื ืื ืืฉืื ืืื ืขืืืจื ืืื ืืืฆืืจ ืืคืืืงืฆืื ื-ReactNative. ืืชืืืชื ืขื
2. ืืื ืจืืฉืืื ืืื?
ืื ืขืืจ ืื ืืืื ืืืชืืื
3. ืืื ื ืจืื ืงืื ืืืื?
ืืืืจ ืืืืื ืืืืืจืื ืืืืฉื, ืืื ืชื ืฉืืืื ืืืฉืชืืฉ ืืืืื ืกืคืจืืื (ืงืื ืฆื ืฉืืืฉื ืืคืืจืื ืืืืื) ืืื ืื ืืืืื ืืืืื ืืช ื-API ืฉื Telegram ืืืืฆืืจ ืคืืกืืช ืงืื ืืืืืืช ืืืคืก. ืืฆืืชื ืืช ืืืกืืจืช
3. ืืืฆื ืืืฆืืจ ืฉืจืช ืขื ื ืืฉืื ืขืืืจ 100 ืจืืื
ืืืืจ ืืืคืืฉืื ืจืืื, ืืื ืชื ืฉืืคืงืืื 'npm' ืืชืืื ื ืืืขืื ืืชืืืืกืช ืืฉืืจืช ืืคืงืืื. ืฉืืจืช ืืคืงืืื ื ืืฆืืช ืืื ืืงืื, ืืื ืืื ืืืืืช ืืกืืื ืืืฆืข ืืืชื, ืืชื ืฆืจืื ืืืชืงืื ืืช NodePackageManager. ืืืขืื ืืืืชื ืฉืชืื ืชืชื ื-PixelBook ืขื ChromeOS. ืืืื ืืื ืขื ืืืืง ืืืื ืขื ืืื ืืืืชื ืืื ืืงืก - ืืจืื ืื ืจืืง ืืืืืชืจ. ืื ืืฉ ืื Windows ืื MacBook, ืืืจ ืืฉ ืื ืงืื ืกืืื.
ืืงืืฆืืจ, ืืชืงื ืชื ืืื ืืงืก ืืจื Crostini.
ืขื ืืืช, ืชืื ืืื ืื ืืื ืชื ืฉืืื ืฉืืืื ืืขืืื ืื ืืืื (ืืื ืจืง ืืฉืืืืฉื ืฉืื ืืืืง), ืื ื ืฆืจืื ืฉืจืช ืขื ื. ืื ื ืืืจืชื
4. ืืื ืืืืื ืฉืจืช ืืืคืขืื ืืื
ืืืจื ืื ืืื ืชื ืฉืื ื ืฆืจืื ืืขืฉืืช ืืืืืฉืื ืชืืงืืื ืืฉืจืช ืฉืื ืืฉืื ืืช ืืงืืืฅ ืขื ืืงืกื ืืงืื. ืืฉื ืื, ืืืกืืฃ (ืืคืขื ืืฉืืจืืช ืืืชืจ ืืจื ืืคืชืืจ "ืคืชื ืงืื ืกืืื"), ื ืื ืกืชื
mkdir bot
bot - ืื ืืคื ืืฉื ืฉื ืืชืืงืืื ืฉืื. ืืืืจ ืืื, ืืชืงื ืชื npm ื-Node.js, ืฉืืืคืฉืจื ืื ืืืจืืฅ ืงืื ืืงืืฆืื ืขื ืจืืืืืฆืืืช *.js
sudo apt update
sudo apt install nodejs
sudo apt install npm
ืื ื ืืืืืฅ ืืืื ืืืืืืจ ืืืืืจ ืืฉืจืช ืืจื ืืงืื ืกืืื ืฉืื ืืฉืื ืื. ืืื
5. ืืื ืืืชืื ืืช ืืงืื ืขืืืจ ืืืื ืืจืืฉืื ืฉืื.
ืืื ืขืืฉืื ืื ืจืง ืชืืืืช ืืฉืืืื. ืื ืชืืื ืืช ืืื ืจืง ืฉืืจืืช ืืงืกื. ื ืืชื ืืืื ืืก ืืืชื ืืื ืืงืื, ืืฉืืืจ ืืืชื ืขื ืืืจืืื ืืจืฆืืื, ืืืื. ืืชื ืืคื. ืืฉืชืืฉืชื
ืืื ืชื ืงืืืฅ ืืืฉ, ืฉืืชืืื ืืื ืกืชื ืืช ืืงืื ืืืืืืื ืืขืืื ืืืืจืฃ ืืฉืืจืชื ืืืชื ืืงืืืฅ 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
ืขืืฉืื ืืืืชื ืฆืจืื ืืืืฉืื ืืืขืืืช ืืช ืืงืื ืืื ืืฉืจืช ืืืืคืขืื ืืืชื. ืื ืืคื ืืืชืืจ ืขืืืจื. ืืชืืฆืื ืืื, ืืืืจ ืกืื ืจื, ืืื ืชื ืฉืืืื ืงื ืืืชืจ ืืืฆืืจ ืงืืืฅ ื-github ืืืืคืฉืจ ืืขืืื ืืช ืืงืื ืืืืฆืขืืช ืคืงืืื ืืงืื ืกืืื. ืจืฉืืชื ืืฉืืื ื
7. ืืืฆื ืืืขืืืช ืงืืฆืื ืืฉืจืช ืืจื github ืืืง 2
ืืืืชื ืฆืจืื ืืืชืงืื ืชืืื ืืช ืืฉืจืช ืฉืชืืจืื ืงืืฆืื ื-git. ืืชืงื ืชื git ืขื ืืฉืจืช ืขื ืืื ืืงืืื ืืงืื ืกืืื
apt-get install git
ืืืืจ ืืื ืืืืชื ืฆืจืื ืืืืืืจ ืืช ืืขืืืช ืืงืืืฅ. ืืื ืืขืฉืืช ืืืช, ืืงืืืชื ืืฉืืจืช ืืคืงืืื
git clone git://github.com/b0tank/bot.git bot
ืืชืืฆืื ืืื, ืืื ืืืคืจืืืงื ืืืขืื ืืฉืจืช. ืืืขืืช ืืฉืื ืื ืืืืชื ืฉืืขืฆื ืืฆืจืชื ืชืืงืื ืฉื ืืื ืืชืื ืชืืงืืืช ืืืื ืฉืืืจ ืงืืืืช. ืืืชืืืช ืืงืืืฅ ื ืจืืชื ืืื */bot/bot/index.js
ืืืืืชื ืืืชืขืื ืืืืขืื ืืื.
ืืืื ืืืขืื ืืช ืกืคืจืืืช ืืืืืจืฃ, ืืืชื ืื ื ืืืงืฉืื ืืฉืืจืช ืืงืื ืืจืืฉืื ื, ืืงืืืื ืืช ืืคืงืืื ืืงืื ืกืืื.
npm install telegraf
8. ืืื ืืืคืขืื ืืื
ืืฉื ืื, ืืขืืื ืืชืืงืืื ืขื ืืงืืืฅ (ืืื ืืขืืืจ ืืชืืงืื ืืชืืงืื ืืจื ืืงืื ืกืืื, ืืคืขื ืืช ืืคืงืืื format cd bot
ืืื ืืืืื ืฉืืชื ื ืืฆื ืืืื ืฉืืชื ืฆืจืื ืืืืืช, ืืชื ืืืื ืืืืื ืคืงืืื ืฉืชืฆืื ืืงืื ืกืืื ืืช ืื ืืงืืฆืื ืืืชืืงืืืช ืฉืืฉ ืฉื ls -a
ืืื ืืืชืืื, ื ืื ืกืชื ืืงืื ืกืืื
node index.js
ืื ืืื ืฉืืืื, ืืื ืืกืืจ, ืืืื ืขืืื. ืืคืฉ ืืืชื ืืืืืจื. ืื ืืฉ ืฉืืืื, ืืืฉื ืืช ืืืืข ืฉืื ืื ืงืืื 1.
9. ืืื ืืืคืขืื ืืื ืืจืงืข
ืื ืืืจ ืชืืื ื ืฉืืืื ืขืืื ืจืง ืืฉืืชื ืืขืฆืืื ืืืฉืืื ืืงืื ืกืืื. ืืื ืืคืชืืจ ืืช ืืืขืื ืืื ืืฉืชืืฉืชื ืืคืงืืื
screen
ืืืืจ ืืื, ืืืคืืข ืืกื ืขื ืงืฆืช ืืงืกื. ืื ืืืืจ ืฉืืื ืืกืืจ. ืืชื ื ืืฆื ืืฉืจืช ืืืจืืืืื ืืฉืจืช ืขื ื. ืืื ืืืืื ืืื ืืืชืจ ืืื ืืื ืขืืื -
node index.js
10. ืืื ืืืื ืขืืื ืืืืฆื ืืืจืืื ืืช ืืคืื ืงืฆืืื ืืืืช ืฉืื
ืื ืืืื ืืืืืื ืฉืื ื ืืืื ืืขืฉืืช? ืืื ืืืื
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 ืฉืืื. ืื ื ืืืฉื ืฉืงื ืืืขืช ืืืื ืืืง ื ืขืฉื ืขื ืืื.
ืืืืืื, ืืืืืขื "ื'ืืืง" ืชืงืื GIF ืขื ืืืืช ืืคืืจืกืืช ืืืกืจื ืืืฆืืืจ Adventure Time.
ืืื ืืคืชื ืืช ืืืื ืขืื ืืืชืจ, ืขืืื ืืืืจ ืืงืืืช, ืจืื ืืืืืืืช, ืืืฉื,
11. ืืืฆื ืืขืืื ืืช ืืงืื ืืืืคืขืื ืืืืฉ ืืช ืืืื
ืื ืชืฉืื ืฉืืชื ืฆืจืื ืืขืืื ืืช ืืงืื ืื ืจืง ื-github, ืืื ืื ืืฉืจืช. ืื ืงื ืืขืฉืืช - ืขืฆืืจ ืืช ืืืื (ืืงืฉ ctrl+c),
- ืืืื ืก ืืืกืืฃ ืชืื ืืื ืชืืงืืืช ืืืขื, git pull
- ืื ื ืืคืขืืืื ืืช ืืืื ืฉืื โโืขื ืืคืงืืื node index.js
ืืกืืฃ
ืจืืื ืืืืืจืื ืืืชืืืจืื ืืงืืืฅ ืื ืืืื ืกืืคืจ ืืจืืจืื ืืืชืื ืชืื ืืชืงืืืื. ืขื ืืืช, ืืฉื ืืกืืชื ืืขืฆืื ืืืื ืืขื ืืชืืื ืืขืืื ืืืืืื ืืืื ืืืช, ืืืฉ ืืชืืขืืขืชื ืืืืจืื ืืื. ืืืจืื ืฉืื ืคืืกื ืขื ืืืจืื ืืจืืจืื ืืคืฉืืืื ืืื ืืืืื IT.
ืืขืชืื, ืื ื ืืชืื ื ืคืืกื ืขื ืืื ืืืฆืข ืืช ืืืืฉืื ืืจืืฉืื ืฉืื ื-ReactNative ืืืืชื ืกืื ืื, ืืืจืฉืื!
ืืงืืจ: www.habr.com