Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

Ua hoʻomaka wau e hoʻolulu iaʻu iho i ka honua o IT ʻekolu pule wale nō i hala. ʻO kaʻoiaʻiʻo, ʻekolu pule i hala aku nei ʻaʻole wau i maopopo i ka syntax HTML, a ua pau kaʻu hoʻolauna ʻana i nā ʻōlelo papahana me kahi papa kula ma Pascal mai 10 mau makahiki i hala. Akā naʻe, ua hoʻoholo wau e hele i kahi hoʻomoana IT, kahi maikaʻi i nā keiki ke hana i ka bot. Ua hoʻoholo wau he mea paʻakikī loa ia.

Ua hoʻomaka kēia i kahi huakaʻi lōʻihi kahi aʻu:

  • hoʻonoho i kahi kikowaena kapua me Ubuntu,
  • hoʻopaʻa inoa ʻia ma GitHub,
  • aʻo i ka syntax JavaScript kumu,
  • heluhelu i ka nui o nā ʻatikala ma ka ʻōlelo Pelekania a me Lūkini,
  • hana hope loa i ka bot,
  • Ua kākau hope wau i kēia ʻatikala.

ʻO ka hopena hope e like me kēia:

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

E ʻōlelo koke wau he ʻatikala kēia no ka poʻe hoʻomaka - e hoʻomaopopo wale i ka hana ʻana i nā mea maʻamau mai ka wā ʻōpala.

A ʻo - no nā mea papahana kiʻekiʻe - e ʻakaʻaka iki lākou.

1. Pehea e kākau ai i ke code ma JS?

Ua maopopo iaʻu he mea pono ke hoʻomaopopo mua i ka syntax o ka ʻōlelo. Ua hāʻule ka koho ma JavaScript, no ka mea ʻo ka hana aʻe iaʻu e hana i kahi noi ma ReactNative. Ua hoʻomaka wau me papa ma Codecademy a ua hauʻoli loa. He manuahi nā lā 7 mua. Nā papahana maoli. Paipai au. Ma kahi o 25 mau hola ka hoʻopau ʻana. ʻOiaʻiʻo, ʻaʻole pono nā mea a pau. ʻO kēia ke ʻano o ke ʻano o ka papa a me ka kikoʻī o ka poloka mua.

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

2. Pehea e hoʻopaʻa inoa ai i kahi bot?

Ua kōkua nui kēia iaʻu i ka hoʻomaka kēia ʻatikala mai ka blog o kekahi Archakov. Nahu ʻo ia i ka hoʻomaka. Akā ʻo ka mea nui aia nā ʻōlelo kuhikuhi no ka hoʻopaʻa inoa ʻana i kahi bot. ʻAʻole hiki iaʻu ke kākau ʻoi aku ka maikaʻi, a no ka mea ʻo kēia ka ʻāpana maʻalahi, e kākau wale wau i ke kumu. Pono ʻoe e hana i kahi bot a loaʻa kāna API. Hana ʻia kēia ma o kekahi bot - @BotFather. E ʻimi iā ia ma ke kelepona, e kākau iā ia, e hahai i ke ala maʻalahi a loaʻa (mālama!) kahi kī API (he pūʻulu helu a me nā leka kēia). Ua maʻalahi ma hope.

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

3. Pehea ke ano o ke code bot?

Ma hope o ke aʻo ʻana i nā ʻatikala no ka manawa lōʻihi, ua ʻike wau he mea pono ke hoʻohana ʻana i kekahi ʻano hale waihona puke (ʻekolu ʻaoʻao code i ke ʻano o ka module) i ʻole e hopohopo e pili ana i ke aʻo ʻana i ka Telegram API a me ka hana ʻana i nā ʻāpana nui o ke code mai ka ʻōpala. Ua loaʻa iaʻu ke kahua telegraf, pono e pili i kekahi mea me ka npm a i ʻole yarn. ʻO kēia kaʻu i hoʻomaopopo ai i ke ʻano o ka waiho ʻana o kahi bot. E akaaka maanei. ʻAʻole au e hōʻeha. ʻO nā hiʻohiʻona ma lalo o ka ʻaoʻao i kōkua nui iaʻu i ka hana ʻana o ka bot:

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

3. Pehea e hana ai i kāu kikowaena kapua no 100 rubles

Ma hope o ka nui o ka ʻimi ʻana, ʻike wau ʻo ke kauoha 'npm' ma ke kiʻi ma luna e pili ana i ka laina kauoha. Aia ka laina kauoha ma nā wahi āpau, akā i hiki ke hoʻokō, pono ʻoe e hoʻokomo iā NodePackageManager. ʻO ka pilikia, ua hoʻolālā wau ma kahi PixelBook me ChromeOS. E lele au ma ʻaneʻi i kahi poloka nui e pili ana i kaʻu aʻo ʻana iā Linux - no ka hapa nui he mea ʻole a pono ʻole. Inā loaʻa iā ʻoe ka Windows a i ʻole MacBook, ua loaʻa iā ʻoe kahi console.

Ma kahi pōkole, ua hoʻokomo wau iā Linux ma o Crostini.

Eia naʻe, i ke kaʻina hana, ua ʻike wau no ka hana mau ʻana o ka bot (a ʻaʻole wale i ka wā e paʻa ana kaʻu kamepiula), pono wau i kahi kikowaena kapua. Ua koho au vscale.io Ua hoʻohana au i 100 rubles a kūʻai aku i ke kikowaena Ubuntu ʻoi loa (e ʻike i ke kiʻi).

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

4. Pehea e hoʻomākaukau ai i kahi kikowaena e holo i kahi bot

Ma hope o kēlā, ua ʻike wau he pono iaʻu e hana i kekahi ʻano waihona ma ka kikowaena kahi e kau ai au i ka faila me ka kikokikona code. No ka hana ʻana i kēia, i ka console (holo pololei ma ka pūnaewele ma o ka pihi "Open console"), komo wau

mkdir bot

bot - ua lilo kēia i inoa o kaʻu waihona. Ma hope o kēlā, hoʻokomo wau i ka npm a me Node.js, kahi e hiki ai iaʻu ke holo i ka code mai nā faila me ka hoʻonā *.js.

sudo apt update
sudo apt install nodejs
sudo apt install npm

Paipai nui wau i ka hoʻonohonoho ʻana i kahi pilina i ke kikowaena ma o kāu console i kēia manawa. Eia manual E ʻae kēia iā ʻoe e hana me ke kikowaena pololei ma o ka console o kāu kamepiula.

5. Pehea e kākau ai i ke code no kāu bot mua.

Akā i kēia manawa he ʻike wale nō ia iaʻu. He laina kikokikona wale nō kēlā papahana. Hiki iā lākou ke hoʻokomo i nā wahi āpau, mālama ʻia me ka hoʻonui i makemake ʻia, a ʻo ia nō. Nani ʻoe. Ua hoʻohana au 'Anom, akā i ka ʻoiaʻiʻo, hiki iā ʻoe ke kākau wale i kahi notepad maʻamau. ʻO ka mea nui e mālama i ka faila ma hope o ka hoʻonui i makemake ʻia. Ua like ia me ke kākau ʻana i nā kikokikona ma Word a mālama iā ia.

Ua hana au i kahi faila hou, kahi aʻu i hoʻokomo ai i ke code mai ka laʻana ma ka ʻaoʻao telegraf a mālama iā ia i loko o ka faila index.js (ma ka laulā ʻaʻole pono e inoa i ka faila ma ia ala, akā he mea maʻamau kēia). Mea nui - ma kahi o BOT_TOKEN, e hoʻokomo i kāu kī API mai ka paukū ʻelua.

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. Pehea e hoʻouka ai i ke code i ke kikowaena ma o github

I kēia manawa pono wau e hoʻouka i kēia code i ke kikowaena a holo. Ua lilo kēia i mea paʻakikī iaʻu. ʻO ka hopena, ma hope o ka pilikia nui, ua ʻike wau e maʻalahi ka hana ʻana i kahi faila ma github e hiki ai iā ʻoe ke hoʻololi i ke code me ka hoʻohana ʻana i kahi kauoha i ka console. Ua kakau au i mooolelo ma github a hana papahana hou, kahi aʻu i hoʻouka ai i ka faila. Ma hope o kēlā, pono wau e noʻonoʻo pehea e hoʻonohonoho ai i ka hoʻouka ʻana i nā faila mai kaʻu moʻokāki (wehe!) i ke kikowaena ma ka waihona bot (inā haʻalele koke ʻoe iā ia, e kākau wale i ka cd bot).

7. Pehea e hoʻouka ai i nā faila i ke kikowaena ma o github ʻāpana 2

Pono wau e hoʻokomo i kahi polokalamu ma ka kikowaena e hoʻoiho i nā faila mai git. Ua hoʻokomo au i ka git ma ke kikowaena ma ke kākau ʻana i ka console

apt-get install git

Ma hope o kēlā, pono wau e hoʻonohonoho i ka hoʻoili ʻana i ka faila. No ka hana ʻana i kēia, ua kākau wau i ka laina kauoha

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

ʻO ka hopena, ua hoʻouka ʻia nā mea a pau mai ka papahana i ke kikowaena. ʻO ka hewa i kēia manawa ʻo ia kaʻu i hana ai i kahi waihona lua i loko o ka waihona bot i loaʻa. Ua like ka helu wahi o ka waihona me */bot/bot/index.js

Ua hoʻoholo wau e haʻalele i kēia pilikia.

A e hoʻouka i ka waihona telegraf, a mākou e noi ai ma ka laina mua o ke code, e kākau i ke kauoha i loko o ka console.

npm install telegraf

8. Pehea e hoʻomaka ai i kahi bot

No ka hana ʻana i kēia, ʻoiai i loko o ka waihona me ka faila (e neʻe mai kahi waihona i kahi waihona ma o ka console, e holo i ke kauoha format cd bot No ka hōʻoia ʻana aia ʻoe i kahi āu e pono ai, hiki iā ʻoe ke hoʻokomo i kahi kauoha e hōʻike i loko o ka console nā ​​faila a me nā waihona i laila. ls -a

No ka hoʻomaka, ua komo au i ka console

node index.js

Inā ʻaʻohe hewa, maikaʻi nā mea a pau, ke hana nei ka bot. E ʻimi iā ia ma ke kelepona. Inā he hewa, e hoʻohana i kāu ʻike mai ka helu 1.

9. Pehea e holo ai i ka bot ma ke kua

E ʻike koke ʻoe e hana wale ka bot ke noho ʻoe i ka console. No ka hoʻoponopono i kēia pilikia ua hoʻohana au i ke kauoha

screen

Ma hope o kēia, e hōʻike ʻia kahi pale me kekahi kikokikona. 'O ia ho'i ua maika'i nā mea a pau. Aia ʻoe ma kahi kikowaena virtual ma kahi kikowaena kapua. No ka hoʻomaopopo maikaʻi ʻana i ke ʻano o ka hana ʻana - Eia ka ʻatikala. E hele wale i kāu waihona a hoʻokomo i ke kauoha e hoʻomaka i ka bot

node index.js

10. Pehea ka hana ʻana o ka bot a pehea e hoʻonui ai i kāna hana

He aha ka mea hiki i kā mākou laʻana bot ke hana? Hiki iā ia

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

ʻōlelo "Welcome!" i ka manawa hoʻomaka (e hoʻololi i ka kikokikona)

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

i ka pane ʻana i ke kauoha maʻamau / kōkua, e hoʻouna i ka memo "E hoʻouna mai iaʻu i kahi sticker"

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

e hoʻouna i ka ʻae i ka pane ʻana i kahi sticker

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

pane iā "ʻAuhea" inā kākau lākou i ka "hi" iā ia
bot.launch()

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

Inā ʻoe e nānā i ke code ma github, a laila e hoʻomaopopo koke ʻoe ʻaʻole wau i hele mamao loa mai kēia hana. ʻO ka mea i hoʻohana ikaika ʻia ka hana ctx.replyWithPhoto Hiki iā ʻoe ke hoʻouna i kahi kiʻi kikoʻī a i ʻole gif i pane i kahi kikokikona kikoʻī.

Ua kākau ʻia kahi ʻāpana koʻikoʻi o ke code e nā keiki i piha i ka makahiki 11-13, aʻu i hāʻawi ai i ke komo i ka bot. Ua komo lākou i kā lākou hihia hoʻohana. Manaʻo wau he mea maʻalahi ke haʻi i ka ʻāpana i hana ʻia e lākou.

No ka laʻana, e loaʻa i ka memo "Jake" kahi GIF me kahi ʻano kaulana mai ke kiʻi kiʻi Adventure Time.

Alakaʻi: pehea e hana ai i kahi Telegram bot maʻalahi ma JS no ka mea hoʻomaka i ka hoʻolālā

No ka hoʻomohala hou ʻana i ka bot, pono ʻoe e hoʻopili i kahi keyboard, e ʻike i nā laʻana, no ka laʻana, mai kēia wahi

11. Pehea e hoʻonui ai i ke code a hoʻomaka hou i ka bot

Mai poina e pono ʻoe e hoʻololi i ke code ʻaʻole wale ma github, akā ma ke kikowaena pū kekahi. He mea maʻalahi kēia - hoʻopau i ka bot (e kaomi ctrl+c),

- komo i loko o ka console ʻoiai i loko o ka waihona pahuhopu, git pull
- Hoʻomaka hou mākou i ka bot me ke kauoha node index.js

hopena

ʻO ka nui o nā mea i wehewehe ʻia ma kēia faila e ʻike nui ʻia i nā polokalamu polokalamu kiʻekiʻe. Eia naʻe, i koʻu hoʻāʻo ʻana e lele ma luna o ke auwaha a hiki i ka honua o nā bots i ka hāʻule hoʻokahi, ua hala loa iaʻu kahi alakaʻi. He alakaʻi i nele i nā mea i maopopo a maʻalahi no kekahi loea IT.

I ka wā e hiki mai ana, ke hoʻolālā nei au i kahi pou e pili ana i ka hana ʻana i kāu noi mua ma ReactNative ma ke ʻano like, kau inoa!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka