ወደ የአይቲ ዓለም ዘልቄ መግባት የጀመርኩት ከሶስት ሳምንታት በፊት ነው። በቁም ነገር፣ ከሦስት ሳምንታት በፊት የኤችቲኤምኤል አገባብ እንኳን አልገባኝም፣ እና ከፕሮግራም አወጣጥ ቋንቋዎች ጋር መተዋወቅ በ10 ዓመቱ ፓስካል ሥርዓተ ትምህርት አብቅቷል። ሆኖም፣ ወደ የአይቲ ካምፕ ለመሄድ ወሰንኩ፣ ለልጆቹ ቦቱን መስራት ጥሩ ነበር። ያን ያህል ከባድ እንዳልሆነ ገምቻለሁ።
ይህ ረጅም ጉዞ የጀመረው እኔ፡-
- የደመና አገልጋይ ከኡቡንቱ ጋር አሰማርቷል ፣
- በ GitHub ላይ ተመዝግቧል ፣
- መሰረታዊ ጃቫስክሪፕት አገባብ ተምሯል ፣
- በእንግሊዝኛ እና በሩሲያ ውስጥ ብዙ መጣጥፎችን ያንብቡ ፣
- በመጨረሻ ቦት ሠራ
- በመጨረሻ ይህንን ጽሑፍ ጻፈ።
የመጨረሻው ውጤት ይህን ይመስላል።
ይህ ለጀማሪዎች ጽሑፍ እንደሆነ ወዲያውኑ እናገራለሁ - ገና ከመጀመሪያው እንዴት አንደኛ ደረጃ ነገሮችን ማድረግ እንደሚቻል ለመረዳት።
እና ደግሞ - ለላቁ ፕሮግራመሮች - ትንሽ እንዲስቁ ብቻ።
1. በ JS ውስጥ ኮድ እንዴት እንደሚፃፍ?
በመጀመሪያ የቋንቋውን አገባብ መረዳት ቢያንስ ዋጋ እንዳለው ተረድቻለሁ። ምርጫው በጃቫ ስክሪፕት ላይ ወድቋል፣ ምክንያቱም ለእኔ ቀጣዩ እርምጃ በReactNative ውስጥ መተግበሪያ መፍጠር ነው። ጀመርኩ
2. ቦት እንዴት እንደሚመዘገብ?
መጀመሪያ ላይ ብዙ ረድቶኛል።
3. የቦት ኮድ ምን ይመስላል?
ጽሑፎቹን ከረዥም ጊዜ ካጠናሁ በኋላ የቴሌግራም ኤፒአይ በማጥናት እና ከባዶ ትላልቅ የኮድ ቁራጮችን ለመፍጠር እንዳይሰቃዩ አንዳንድ ዓይነት ቤተ መጻሕፍትን (የሦስተኛ ወገን ኮድ በሞጁል ቅርጸት) መጠቀም ጠቃሚ እንደሆነ ተገነዘብኩ። ማዕቀፍ አገኘሁ
3. ለ 100 ሩብልስ የራስዎን የደመና አገልጋይ እንዴት መፍጠር እንደሚችሉ
ከብዙ ፍለጋ በኋላ፣ ከላይ በምስሉ ላይ ያለው 'npm' ትዕዛዝ የትእዛዝ መስመርን እንደሚያመለክት ተረዳሁ። የትእዛዝ መስመሩ በሁሉም ቦታ አለ ፣ ግን እሱን ለማስፈፀም ፣ NodePackageManagerን መጫን ያስፈልግዎታል። ችግሩ በPixelBook ላይ ከChromeOS ጋር ፕሮግራም እያዘጋጀሁ ነበር። ሊኑክስን እንዴት እንደማውቅ እዚህ ላይ አንድ ትልቅ ብሎክ እዘለዋለሁ - ለአብዛኛዎቹ ይህ ባዶ እና አላስፈላጊ ነው። ዊንዶውስ ወይም ማክቡክ ካለህ ኮንሶል አለህ።
በአጭሩ ሊኑክስን በክሮስቲኒ በኩል ጫንኩት።
ሆኖም በሂደቱ ውስጥ ቦት ሁል ጊዜ እንዲሰራ (እና ኮምፒውተሬ ሲበራ ብቻ ሳይሆን) የደመና አገልጋይ እንደሚያስፈልገኝ ተገነዘብኩ። መርጥኩ
4. ቦቱን ለማስኬድ አገልጋዩን እንዴት ማዘጋጀት እንደሚቻል
ከዚያ በኋላ, በአገልጋዩ ላይ አንዳንድ ማህደሮችን መስራት እንዳለብኝ ተገነዘብኩ, በውስጡም ፋይሉን ከኮዱ ጽሑፍ ጋር አስቀምጥ. ይህንን ለማድረግ በኮንሶል ውስጥ (በጣቢያው ላይ በቀጥታ በ "Open Console" ቁልፍ በኩል ያሂዱ) ነዳሁ.
mkdir bot
bot - ይህ የእኔ አቃፊ ስም ሆነ። ከዚያ በኋላ, npm እና Node.js ጫንኩ, ይህም በኋላ ከ * .js ፋይሎች ኮድን ለማስኬድ ያስችለኛል.
sudo apt update
sudo apt install nodejs
sudo apt install npm
በኮንሶልዎ በኩል ከአገልጋዩ ጋር ግንኙነት እንዲያዘጋጁ በዚህ ደረጃ በጣም እመክራለሁ። እዚህ
5. የመጀመሪያውን ቦት እንዴት ኮድ ማድረግ እንደሚቻል.
አሁን ይህ ለእኔ መገለጥ ብቻ ነው። ማንኛውም ፕሮግራም የጽሑፍ መስመሮች ብቻ ነው. በማንኛውም ቦታ መንዳት ይችላሉ, በተፈለገው ቅጥያ ያስቀምጡ እና ያ ነው. አንች ቆንጆ ነሽ. ተ ጠ ቀ ም ኩ
አዲስ ፋይል ሠራሁ ፣ በቴሌግራፍ ገጽ ላይ ካለው ምሳሌ ላይ ኮዱን አስገባሁ እና ወደ index.js ፋይል አስቀመጥኩት (ፋይሉን እንደዚህ መሰየም አስፈላጊ አይደለም ፣ ግን ተቀባይነት አለው)። ጠቃሚ - ከBOT_TOKEN ይልቅ የኤፒአይ ቁልፍህን ከሁለተኛው አንቀጽ አስገባ።
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. ቦት እንዴት እንደሚጀመር
ይህንን ለማድረግ, ከፋይሉ ጋር ባለው አቃፊ ውስጥ (ከአቃፊ ወደ ማህደሩ በኮንሶል በኩል ለማንቀሳቀስ, የቅርጸት ትዕዛዙን ያሂዱ 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'))
ለመደበኛ/እገዛ ትዕዛዝ ምላሽ "ተለጣፊ ላከልኝ" የሚለውን መልእክት ይላኩ
bot.on('sticker', (ctx) => ctx.reply(''))
ለተለጣፊ ምላሽ ማረጋገጫ ላክ
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
“ሃይ” ብለው ከጻፉ “ሄይ” ብለው ይመልሱ
bot.launch()
በ ላይ ያለውን ኮድ ከተመለከቱ ctx.replyWithPhoto
ለተወሰነ ጽሑፍ ምላሽ የተሰጠ ፎቶ ወይም gif እንዲልኩ ያስችልዎታል።
የኮዱ ጉልህ ክፍል የተፃፈው እድሜያቸው ከ11-13 የሆኑ ልጆች ሲሆኑ ለቦቱ መዳረሻ ሰጠኋቸው። የተጠቃሚ ጉዳያቸውን አስገቡ። የትኛው ክፍል በእነሱ እንደተሰራ ለመናገር ቀላል ይመስለኛል።
ለምሳሌ፣ ከአድቬንቸር ታይም ካርቱን ታዋቂ ገጸ ባህሪ ያለው ጂአይኤፍ ወደ “ጃክ” መልእክት ይመጣል።
ቦቱን የበለጠ ለማዳበር የቁልፍ ሰሌዳውን ማገናኘት ያስፈልግዎታል ፣ ምሳሌዎችን ይመልከቱ ፣ ለምሳሌ ፣
11. ኮዱን እንዴት ማዘመን እና ቦቱን እንደገና ማስጀመር እንደሚቻል
ኮዱን በ github ላይ ብቻ ሳይሆን በአገልጋዩ ላይም ማዘመን እንደሚያስፈልግዎ አይርሱ። ይህንን ለማድረግ ቀላል ነው - ቦቱን ያቁሙ (ctrl + c ን ይጫኑ) ፣
- በዒላማው አቃፊ ውስጥ በመሆን ወደ ኮንሶሉ ውስጥ ይግቡ ፣ git pull
- ቦት በትእዛዙ እንደገና ያስጀምሩ node index.js
END
በዚህ ፋይል ውስጥ የተገለጹት አብዛኛዎቹ ነገሮች ለላቁ ፕሮግራም አውጪዎች በጣም ግልጽ ይሆናሉ። ይሁን እንጂ እኔ ራሴ በአንድ ጀንበር ከገደል በላይ ወደ ቦቶች አለም ለመዝለል ስሞክር እንደዚህ አይነት መመሪያ ናፈቀኝ። ለማንኛውም የአይቲ ባለሙያ ግልጽ እና ቀላል ነገሮችን የማያመልጥ መመሪያ።
ለወደፊት፣ የመጀመሪያ አፕሊኬሽን በReactNative ላይ በተመሳሳይ ስታይል እንዴት እንደምሰራ ልጥፍ እቅድ አለኝ፣ ሰብስክራይብ ያድርጉ!
ምንጭ: hab.com