መመሪያ፡ በፕሮግራሚንግ ውስጥ ለጀማሪ በጄኤስ ውስጥ ለቴሌግራም ቀላል ቦት እንዴት እንደሚሰራ

ወደ የአይቲ ዓለም ዘልቄ መግባት የጀመርኩት ከሶስት ሳምንታት በፊት ነው። በቁም ነገር፣ ከሦስት ሳምንታት በፊት የኤችቲኤምኤል አገባብ እንኳን አልገባኝም፣ እና ከፕሮግራም አወጣጥ ቋንቋዎች ጋር መተዋወቅ በ10 ዓመቱ ፓስካል ሥርዓተ ትምህርት አብቅቷል። ሆኖም፣ ወደ የአይቲ ካምፕ ለመሄድ ወሰንኩ፣ ለልጆቹ ቦቱን መስራት ጥሩ ነበር። ያን ያህል ከባድ እንዳልሆነ ገምቻለሁ።

ይህ ረጅም ጉዞ የጀመረው እኔ፡-

  • የደመና አገልጋይ ከኡቡንቱ ጋር አሰማርቷል ፣
  • በ GitHub ላይ ተመዝግቧል ፣
  • መሰረታዊ ጃቫስክሪፕት አገባብ ተምሯል ፣
  • በእንግሊዝኛ እና በሩሲያ ውስጥ ብዙ መጣጥፎችን ያንብቡ ፣
  • በመጨረሻ ቦት ሠራ
  • በመጨረሻ ይህንን ጽሑፍ ጻፈ።

የመጨረሻው ውጤት ይህን ይመስላል።

መመሪያ፡ በፕሮግራሚንግ ውስጥ ለጀማሪ በጄኤስ ውስጥ ለቴሌግራም ቀላል ቦት እንዴት እንደሚሰራ

ይህ ለጀማሪዎች ጽሑፍ እንደሆነ ወዲያውኑ እናገራለሁ - ገና ከመጀመሪያው እንዴት አንደኛ ደረጃ ነገሮችን ማድረግ እንደሚቻል ለመረዳት።

እና ደግሞ - ለላቁ ፕሮግራመሮች - ትንሽ እንዲስቁ ብቻ።

1. በ JS ውስጥ ኮድ እንዴት እንደሚፃፍ?

በመጀመሪያ የቋንቋውን አገባብ መረዳት ቢያንስ ዋጋ እንዳለው ተረድቻለሁ። ምርጫው በጃቫ ስክሪፕት ላይ ወድቋል፣ ምክንያቱም ለእኔ ቀጣዩ እርምጃ በReactNative ውስጥ መተግበሪያ መፍጠር ነው። ጀመርኩ ኮርስ በ Codecademy ላይ እና በጣም ቀናተኛ ነበር። የመጀመሪያዎቹ 7 ቀናት ነፃ ናቸው። እውነተኛ ፕሮጀክቶች. አሳስባለው. ምንባቡ 25 ሰአታት ያህል ፈጅቷል። እንደ እውነቱ ከሆነ, ሁሉም ጠቃሚ አልነበሩም. የኮርሱ መዋቅር እንደዚህ ይመስላል እና የመጀመሪያው እገዳ በዝርዝር።

መመሪያ፡ በፕሮግራሚንግ ውስጥ ለጀማሪ በጄኤስ ውስጥ ለቴሌግራም ቀላል ቦት እንዴት እንደሚሰራ

2. ቦት እንዴት እንደሚመዘገብ?

መጀመሪያ ላይ ብዙ ረድቶኛል። ይህ ዓምድ ከተወሰነ የአርክኮቭ ብሎግ. ገና በጅማሬ ያኝካል። ነገር ግን ዋናው ነገር ቦት ለመመዝገብ መመሪያው ነው. በተሻለ ሁኔታ አልጽፍም, እና ይህ በጣም ቀላሉ ክፍል ስለሆነ, ዋናውን ነገር ብቻ ነው የምጽፈው. ቦት መፍጠር እና ኤፒአይውን ማግኘት አለቦት። ይህ የሚደረገው በሌላ ቦት - @BotFather በኩል ነው። በቴሌግራም ውስጥ ይፈልጉት, ይፃፉለት, ቀላሉን መንገድ ይከተሉ እና ያግኙ (አስቀምጥ!) ኤፒአይ ቁልፍ (ይህ የቁጥሮች እና ፊደሎች ስብስብ ነው). በኋላ ለእኔ ምቹ ሆኖ መጣ።

መመሪያ፡ በፕሮግራሚንግ ውስጥ ለጀማሪ በጄኤስ ውስጥ ለቴሌግራም ቀላል ቦት እንዴት እንደሚሰራ

3. የቦት ኮድ ምን ይመስላል?

ጽሑፎቹን ከረዥም ጊዜ ካጠናሁ በኋላ የቴሌግራም ኤፒአይ በማጥናት እና ከባዶ ትላልቅ የኮድ ቁራጮችን ለመፍጠር እንዳይሰቃዩ አንዳንድ ዓይነት ቤተ መጻሕፍትን (የሦስተኛ ወገን ኮድ በሞጁል ቅርጸት) መጠቀም ጠቃሚ እንደሆነ ተገነዘብኩ። ማዕቀፍ አገኘሁ ቴሌግራፍnpm ወይም yarn በመጠቀም በሆነ መንገድ ከአንድ ነገር ጋር መገናኘት ያስፈለገው። የቦት ማሰማራት ምን እንደሚያካትት ያኔ የተረዳሁት በዚህ መንገድ ነበር። እዚህ ሳቁ። ቅር አይለኝም። ከገጹ ግርጌ ያሉት ምሳሌዎች ቦት በሚቀጥለው የፍጥረት ጊዜ በጣም ረድተውኛል፡-

መመሪያ፡ በፕሮግራሚንግ ውስጥ ለጀማሪ በጄኤስ ውስጥ ለቴሌግራም ቀላል ቦት እንዴት እንደሚሰራ

3. ለ 100 ሩብልስ የራስዎን የደመና አገልጋይ እንዴት መፍጠር እንደሚችሉ

ከብዙ ፍለጋ በኋላ፣ ከላይ በምስሉ ላይ ያለው 'npm' ትዕዛዝ የትእዛዝ መስመርን እንደሚያመለክት ተረዳሁ። የትእዛዝ መስመሩ በሁሉም ቦታ አለ ፣ ግን እሱን ለማስፈፀም ፣ NodePackageManagerን መጫን ያስፈልግዎታል። ችግሩ በPixelBook ላይ ከChromeOS ጋር ፕሮግራም እያዘጋጀሁ ነበር። ሊኑክስን እንዴት እንደማውቅ እዚህ ላይ አንድ ትልቅ ብሎክ እዘለዋለሁ - ለአብዛኛዎቹ ይህ ባዶ እና አላስፈላጊ ነው። ዊንዶውስ ወይም ማክቡክ ካለህ ኮንሶል አለህ።

በአጭሩ ሊኑክስን በክሮስቲኒ በኩል ጫንኩት።

ሆኖም በሂደቱ ውስጥ ቦት ሁል ጊዜ እንዲሰራ (እና ኮምፒውተሬ ሲበራ ብቻ ሳይሆን) የደመና አገልጋይ እንደሚያስፈልገኝ ተገነዘብኩ። መርጥኩ vscale.io 100 ሩብልስ ወረወርኩ ፣ በጣም ርካሹን የኡቡንቱ አገልጋይ ገዛሁ (ሥዕሉን ይመልከቱ)።

መመሪያ፡ በፕሮግራሚንግ ውስጥ ለጀማሪ በጄኤስ ውስጥ ለቴሌግራም ቀላል ቦት እንዴት እንደሚሰራ

4. ቦቱን ለማስኬድ አገልጋዩን እንዴት ማዘጋጀት እንደሚቻል

ከዚያ በኋላ, በአገልጋዩ ላይ አንዳንድ ማህደሮችን መስራት እንዳለብኝ ተገነዘብኩ, በውስጡም ፋይሉን ከኮዱ ጽሑፍ ጋር አስቀምጥ. ይህንን ለማድረግ በኮንሶል ውስጥ (በጣቢያው ላይ በቀጥታ በ "Open Console" ቁልፍ በኩል ያሂዱ) ነዳሁ.

mkdir bot

bot - ይህ የእኔ አቃፊ ስም ሆነ። ከዚያ በኋላ, npm እና Node.js ጫንኩ, ይህም በኋላ ከ * .js ፋይሎች ኮድን ለማስኬድ ያስችለኛል.

sudo apt update
sudo apt install nodejs
sudo apt install npm

በኮንሶልዎ በኩል ከአገልጋዩ ጋር ግንኙነት እንዲያዘጋጁ በዚህ ደረጃ በጣም እመክራለሁ። እዚህ መመሪያ ይህ ከአገልጋዩ ጋር በቀጥታ በኮምፒተርዎ ኮንሶል በኩል እንዲሰሩ ያስችልዎታል።

5. የመጀመሪያውን ቦት እንዴት ኮድ ማድረግ እንደሚቻል.

አሁን ይህ ለእኔ መገለጥ ብቻ ነው። ማንኛውም ፕሮግራም የጽሑፍ መስመሮች ብቻ ነው. በማንኛውም ቦታ መንዳት ይችላሉ, በተፈለገው ቅጥያ ያስቀምጡ እና ያ ነው. አንች ቆንጆ ነሽ. ተ ጠ ቀ ም ኩ አቶም, ግን በእውነቱ, በመደበኛ ማስታወሻ ደብተር ውስጥ ብቻ መጻፍ ይችላሉ. ዋናው ነገር ፋይሉን በኋላ ላይ በሚፈለገው ቅጥያ ውስጥ ማስቀመጥ ነው. ልክ በ Word ውስጥ ጽሑፍ መጻፍ እና ማስቀመጥ ነው።

አዲስ ፋይል ሠራሁ ፣ በቴሌግራፍ ገጽ ላይ ካለው ምሳሌ ላይ ኮዱን አስገባሁ እና ወደ 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

አስተያየት ያክሉ