ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ (ክፍል 2): ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ማኹል

В ያለፈው እትም ቊት እንዎት መፍጠር እንደምንቜል አውቀናል፣ ዹክፍሉን ምሳሌ አስጀምሚናል። Bot እና እሱን በመጠቀም መልዕክቶቜን ዹመላክ ዘዎዎቜን ጠንቅቆ ያውቅ ነበር።

በዚህ ጜሑፍ ውስጥ ይህን ርዕስ እቀጥላለሁ, ስለዚህ ይህን ጜሑፍ ማንበብ እንዲጀምሩ እመክራለሁ ካነበቡ በኋላ ብቻ ዚመጀመሪያው ክፍል።.

በዚህ ጊዜ ቊታቜንን እንዎት ማደስ እንደምንቜል እና በእሱ ላይ ዚትዕዛዝ ድጋፍ እንደምንጚምር እና እንዲሁም ኹክፍሉ ጋር መተዋወቅ እንቜላለን። Updater.

በአንቀጹ ሂደት ውስጥ ብዙ ቀላል ቊቶቜን እንጜፋለን ፣ ዹኋለኛው ደግሞ በተሰጠው ቀን እና ዹአገር ኮድ መሠሚት ፣ በአንድ ሀገር ውስጥ አንድ ቀን ቅዳሜና እሁድ ወይም በአምራቜ ዹቀን መቁጠሪያ መሠሚት ዚስራ ቀን መሆኑን ይወስናል ። ግን ፣ ልክ እንደበፊቱ ፣ ዚጜሁፉ ዓላማ ኚጥቅል በይነገጜ ጋር እርስዎን ማወቅ ነው። telegram.bot ዚራስዎን ቜግሮቜ ለመፍታት.

ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ (ክፍል 2): ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ማኹል

ኚተኚታታዩ ሁሉም መጣጥፎቜ "ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ"

  1. ቊት ይፍጠሩ እና ወደ ቎ሌግራም መልእክት ለመላክ ይጠቀሙበት
  2. ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ያክሉ

ይዘቶቜ

ዚውሂብ ትንተና ላይ ፍላጎት ካሎት ዚእኔን ሊፈልጉ ይቜላሉ ቎ሌግራም О youtube ቻናሎቜ. አብዛኛው ይዘቱ ለ R ቋንቋ ዹተወሰነ ነው።

  1. ማዘመኛ ክፍል
  2. ተቆጣጣሪዎቜ - ተቆጣጣሪዎቜ
  3. ዚመጀመሪያውን ትእዛዝ ወደ ቊት ፣ ዚትእዛዝ ተቆጣጣሪ ያክሉ
  4. ዚጜሑፍ መልእክት ፕሮሰሰር እና ማጣሪያዎቜ
  5. ኚፓራሜትሮቜ ጋር ትዕዛዞቜን ማኹል
  6. ቊት ኚበስተጀርባ ያሂዱ
  7. መደምደሚያ

ማዘመኛ ክፍል

Updater ዚ቎ሌግራም ቊትን ለመስራት ቀላል ዚሚያደርግልዎ ክፍል ነው እና ክፍሉን ኚኮድ በታቜ ይጠቀማል Dispetcher. ክፍል ምደባ Updater ኹ bot ዝማኔዎቜን መቀበል ነው (በቀደመው ጜሑፍ ውስጥ ለዚህ ዓላማ ዘዮውን ተጠቅመንበታል getUpdates()), እና ወደ ተጚማሪ ያስተላልፉዋ቞ው Dispetcher.

በተራው Dispetcher እርስዎ ዚፈጠሩትን ተቆጣጣሪዎቜ ይዟል፣ ማለትም. ዚመደብ እቃዎቜ Handler.

ተቆጣጣሪዎቜ - ተቆጣጣሪዎቜ

ኚሚጚምሩት ተቆጣጣሪዎቜ ጋር Dispetcher ለተለያዩ ክስተቶቜ bot ምላሟቜ። ይህንን ጜሑፍ በሚጜፉበት ጊዜ እ.ኀ.አ telegram.bot ዚሚኚተሉት አይነት ተቆጣጣሪዎቜ ተጚምሚዋል፡

  • MessageHandler - መልእክት ተቆጣጣሪ
  • CommandHandler - ዚትእዛዝ ተቆጣጣሪ
  • CallbackQueryHandler - ኚውስጥ መስመር ዚተላኩ ዹቁልፍ ሰሌዳዎቜ ውሂብ ተቆጣጣሪ
  • ErrorHandler - ኚቊት ዝማኔዎቜን ሲጠይቅ ዚስህተት ተቆጣጣሪ

ዚመጀመሪያውን ትእዛዝ ወደ ቊት ፣ ዚትእዛዝ ተቆጣጣሪ ያክሉ

ኹዚህ በፊት ቊቶቜን ተጠቅመህ ዚማታውቅ ኹሆነ እና ትዕዛዙ ምን እንደሆነ ዚማታውቅ ኚሆነ፣ ወደ ቊት ትእዛዞቜ ወደፊት slash በመጠቀም መላክ አለባ቞ው። / እንደ ቅድመ ቅጥያ.

በቀላል ትዕዛዞቜ እንጀምራለን, ማለትም. በትእዛዙ ላይ ሰላም ለማለት ዹኛን ቊት እናስተምር /hi.

ኮድ 1፡ ቊቱን ሰላም ለማለት ማስተማር

library(telegram.bot)

# сПзЎаёЌ экзеЌпляр класса Updater
updater <- Updater('ТОКЕН ВАКЕГО БОТА')

# ПОшеЌ ЌетПЎ Ўля прОветсвОя
say_hello <- function(bot, update) {

  # ИЌя пПльзПвателя с кПтПрыЌ МаЎП пПзЎарПваться
  user_name <- update$message$from$first_name

  # Отправка прОветствеММПгП сППбщеМОя
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("МПё пПчтеМОе, ", user_name, "!"), 
                  parse_mode = "Markdown")

}

# сПзЎаёЌ ПбрабПтчОк 
hi_hendler <- CommandHandler('hi', say_hello)

# ЎПбаляеЌ ПбрабПтчОк в ЎОспетчер
updater <- updater + hi_hendler

# запускаеЌ бПта
updater$start_polling()

ኹላይ ያለውን ዚኮድ ምሳሌ ያስኪዱ፣ መጀመሪያ ቊትን ሲፈጥሩ በተቀበሉት እውነተኛ ቶኚን 'YOUR TOKEN' በመተካት ቊትአባት (ቊት ውስጥ ስለመፍጠር ተናገርኩ። ዚመጀመሪያው ጜሑፍ).

ዘዮ start_polling() ደሹጃ Updaterበኮዱ መጚሚሻ ላይ ጥቅም ላይ ዹሚውለው ኚቊት ማሻሻያዎቜን ዹመጠዹቅ እና ዚማስኬድ ማለቂያ ዹሌለው ዑደት ይጀምራል።

አሁን ቎ሌግራምን እንኚፍት እና ዚመጀመሪያውን ትዕዛዝ ወደ ቊታቜን እንፃፍ /hi.

ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ (ክፍል 2): ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ማኹል

አሁን ዚእኛ ቊት ትዕዛዙን ተሚድቷል /hiእና ሰላምታ እንዎት እንደሚሰጠን ያውቃል።

በስርዓተ-ፆታ እንዲህ ዓይነቱን ቀላል ቊት ዚመገንባት ሂደት እንደሚኚተለው ሊገለፅ ይቜላል.

ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ (ክፍል 2): ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ማኹል

  1. ዹክፍሉን ምሳሌ ይፍጠሩ Updater;
  2. ዘዎዎቜን እንፈጥራለን, ማለትም. ዚእኛ ቊት ዚሚያኚናውና቞ው ተግባራት። በኮዱ ምሳሌ ይህ ተግባር ነው። say_hello(). እንደ ቊት ዘዎዎቜ ዚሚጠቀሙባ቞ው ተግባራት ሁለት አስፈላጊ ክርክሮቜ ሊኖራ቞ው ይገባል - Bot О ዝማኔእና አንድ አማራጭ - ቀስቶቜ. ክርክር Bot, ይህ ዚእርስዎ ቊት ነው, በእሱ እርዳታ ለመልእክቶቜ ምላሜ መስጠት, መልዕክቶቜን መላክ ወይም ለቊቱ ዹሚገኙ ሌሎቜ ዘዎዎቜን መጠቀም ይቜላሉ. ክርክር ዝማኔ ይህ ቊት ኹተጠቃሚው ዹተቀበለው ነው, በእውነቱ, ዘዮውን በመጠቀም በመጀመሪያው ጜሑፍ ውስጥ ዹተቀበልነው getUpdates(). ክርክር ቀስቶቜ በተጠቃሚው ዹተላኹውን ተጚማሪ መሹጃ ኚትእዛዙ ጋር እንዲያካሂዱ ይፈቅድልዎታል ፣ ትንሜ ቆይተው ወደዚህ ርዕስ እንመለሳለን ።
  3. ተቆጣጣሪዎቜን እንፈጥራለን, ማለትም. አንዳንድ ዹተጠቃሚ እርምጃዎቜን ባለፈው ደሹጃ ኚተፈጠሩት ዘዎዎቜ ጋር እናያይዛ቞ዋለን። በመሰሚቱ፣ ተቆጣጣሪ ቀስቅሎ ነው፣ አንዳንድ ዚቊት ተግባርን ዚሚጠራ ክስተት ነው። በእኛ ምሳሌ, እንዲህ ዓይነቱ ቀስቅሎ ትዕዛዝ መላክ ነው /hi, እና በቡድኑ ዹተተገበሹ ነው hi_hendler <- CommandHandler('hi', say_hello). ዚመጀመሪያ ተግባር ክርክር CommandHandler() በእኛ ሁኔታ, ትዕዛዝ እንዲገልጹ ያስቜልዎታል hi, ዚትኛው ቊት ምላሜ ይሰጣል. ሁለተኛው ክርክር ዚቊት ዘዮን እንዲገልጹ ያስቜልዎታል, ዘዮውን እንጠራዋለን say_hello, ተጠቃሚው በመጀመሪያው ነጋሪ እሎት ውስጥ ዹተገለጾውን ትዕዛዝ ኚጠራ ዹሚፈፀመው;
  4. በመቀጠል, ዹተፈጠሹውን ተቆጣጣሪ ወደ ክፍላቜን ምሳሌ ላኪ እንጚምራለን Updater. ተቆጣጣሪዎቜን በበርካታ መንገዶቜ ማኹል ይቜላሉ ፣ ኹላይ ባለው ምሳሌ ፣ ምልክቱን በመጠቀም ቀላሉን ተጠቀምኩ +ማለትም, updater <- updater + hi_hendler. ዘዮውን በመጠቀም ተመሳሳይ ነገር ማድሚግ ይቻላል add_handler(), ይህም ዹክፍል ነው Dispatcher, ይህን ዘዮ እንደዚህ ማግኘት ይቜላሉ: updater$dispatcher$add_handler();
  5. ትዕዛዙን በመጠቀም ቊቱን ያስጀምሩ start_polling().

ዚጜሑፍ መልእክት ፕሮሰሰር እና ማጣሪያዎቜ

ትዕዛዞቜን ወደ ቊት እንዎት እንደሚልክ አውቀናል, ነገር ግን አንዳንድ ጊዜ ለትእዛዞቜ ብቻ ሳይሆን ለአንዳንድ መደበኛ ዚጜሑፍ መልእክቶቜ ምላሜ ለመስጠት ቊት እንፈልጋለን. ይህንን ለማድሚግ ዚመልእክት መቆጣጠሪያዎቜን መጠቀም ያስፈልግዎታል - መልእክት ሃንደርለር.

ዹተለመደ መልእክት ሃንደርለር ለሁሉም ገቢ መልእክቶቜ ፍጹም ምላሜ ይሰጣል። ስለዚህ ዚመልእክት ተቆጣጣሪዎቜ ብዙውን ጊዜ ኚማጣሪያዎቜ ጋር አብሚው ጥቅም ላይ ይውላሉ። ቊት በትዕዛዝ ላይ ብቻ ሳይሆን ሰላም እንዲል እናስተምሚው /hi, ግን ደግሞ ኚሚኚተሉት ቃላት ውስጥ አንዱ ለቊቱ በተላኹው መልእክት ውስጥ በሚታይበት ጊዜ ሁሉ: ሰላም, ሠላም, ሰላምታ, ሃይ, ቩንጆር.

ለአሁን ምንም አዲስ ዘዎዎቜን አንጜፍም, ምክንያቱም ... ቊት ሰላምታ ዚሚሰጠንበት ዘዮ ቀድሞውኑ አለን። እኛ ማድሚግ ያለብን አስፈላጊውን ማጣሪያ እና ዚመልእክት ተቆጣጣሪ መፍጠር ብቻ ነው።

ኮድ 2፡ ዚጜሑፍ መልእክት ተቆጣጣሪን ይጚምሩ እና ያጣሩ

library(telegram.bot)

# сПзЎаёЌ экзеЌпляр класса Updater
updater <- Updater('ТОКЕН ВАКЕГО БОТА')

# ПОшеЌ ЌетПЎ Ўля прОветсвОя
## кПЌаМЎа прОветвОя
say_hello <- function(bot, update) {

  # ИЌя пПльзПвателя с кПтПрыЌ МаЎП пПзЎарПваться
  user_name <- update$message$from$first_name

  # ОтправляеЌ прОветсвеММПе сППбщеМОе
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("МПё пПчтеМОе, ", user_name, "!"),
                  parse_mode = "Markdown",
                  reply_to_message_id = update$message$message_id)

}

# сПзЎаёЌ фОльтры
MessageFilters$hi <- BaseFilter(function(message) {

  # прПверяеЌ, встречается лО в тексте сППбщеМОя слПва: прОвет, зЎравствуй, салют, хай, бПМжур
  grepl(x           = message$text, 
        pattern     = 'прОвет|зЎравствуй|салют|хай|бПМжур',
        ignore.case = TRUE)
  }
)

# сПзЎаёЌ ПбрабПтчОк 
hi_hendler <- CommandHandler('hi', say_hello) # ПбрабПтчОк кПЌаМЎы hi
hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi)

# ЎПбаляеЌ ПбрабПтчОкО в ЎОспетчер
updater <- updater + 
             hi_hendler +
             hi_txt_hnd

# запускаеЌ бПта
updater$start_polling()

ኹላይ ያለውን ዚኮድ ምሳሌ ያስኪዱ፣ መጀመሪያ ቊትን ሲፈጥሩ በተቀበሉት እውነተኛ ቶኚን 'YOUR TOKEN' በመተካት ቊትአባት (ቊት ውስጥ ስለመፍጠር ተናገርኩ። ዚመጀመሪያው ጜሑፍ).

አሁን ኹዚህ ቀደም ዚተዘሚዘሩትን ዚሰላምታ ቃላት á‹šá‹«á‹™ ብዙ መልዕክቶቜን ለመላክ እንሞክር፡-
ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ (ክፍል 2): ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ማኹል

ስለዚህ በመጀመሪያ ደሹጃ ቊት አስተምሚን ሰላም ለማለት ብቻ ሳይሆን ለሰላምታ ምላሜ እንዲሰጥ ነው። ይህንን ያደሚግነው ክርክሩን በመጠቀም ነው። ለመልእክት_መታወቂያ_መልስ, በዘዮ ውስጥ ዹሚገኝ sendMessage()ምላሜ መስጠት ዚሚፈልጉት ዚመልእክቱን መታወቂያ ወደዚያ ማስተላለፍ ያስፈልግዎታል። ዚመልእክት መታወቂያውን እንደዚህ ማግኘት ይቜላሉ፡- update$message$message_id.

ነገር ግን እኛ ያደሚግነው ዋናው ነገር ተግባሩን በመጠቀም ወደ ቊት ማጣሪያ ማኹል ነው BaseFilter():

# сПзЎаёЌ фОльтры
MessageFilters$hi <- BaseFilter( 

  # аМПМОЌМая фОльтрующая фуМкцОя
  function(message) {

    # прПверяеЌ, встречается лО в тексте сППбщеМОя слПва прОветствОя
    grepl(x           = message$text, 
          pattern     = 'прОвет|зЎравствуй|салют|хай|бПМжур',
          ignore.case = TRUE)
  }

)

እርስዎ እንዳስተዋሉት፣ በእቃው ላይ ማጣሪያዎቜ መጹመር አለባ቞ው ዚመልእክት ማጣሪያዎቜመጀመሪያ ላይ ትንሜ ዝግጁ ዹሆኑ ማጣሪያዎቜን ዚያዘ። በእኛ ምሳሌ, ወደ ዕቃው ዚመልእክት ማጣሪያዎቜ አንድ አካል ጚምሚናል። hiይህ አዲስ ማጣሪያ ነው።

ለመስራት BaseFilter() ዚማጣሪያውን ተግባር ማለፍ ያስፈልግዎታል. በመሠሚቱ፣ ማጣሪያ ዚመልእክት ምሳሌ ተቀብሎ ዚሚመለስ ተግባር ነው። እውነት ወይም FALSE. በምሳሌአቜን, መሰሚታዊ ተግባሩን በመጠቀም ቀላል ተግባርን ጜፈናል grepl() ዚመልእክት ፅሁፉን ይፈትሻል እና ኹመደበኛው አገላለጜ ጋር ዚሚዛመድ ኹሆነ прОвет|зЎравствуй|салют|хай|бПМжур ይመለሳል እውነት.

በመቀጠል ዚመልእክት መቆጣጠሪያ እንፈጥራለን hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi). ዚመጀመሪያ ተግባር ክርክር MessageHandler() ተቆጣጣሪውን ዚሚጠራው ዘዮ ሲሆን ሁለተኛው ክርክር ዚሚጠራበት ማጣሪያ ነው. በእኛ ሁኔታ, ይህ እኛ ዹፈጠርነው ማጣሪያ ነው MessageFilters$hi.

ደህና, በመጚሚሻ, ዹተፈጠሹውን ተቆጣጣሪ ወደ ላኪው እንጚምራለን ሰላም_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

ኹላይ እንደጻፍኩት በጥቅሉ ውስጥ telegram.bot እና እቃ ዚመልእክት ማጣሪያዎቜ ሊጠቀሙባ቞ው ዚሚቜሉት አብሮገነብ ማጣሪያዎቜ አስቀድሞ አለ።

  • ሁሉም - ሁሉም መልዕክቶቜ
  • ጜሑፍ - ዚጜሑፍ መልዕክቶቜ
  • ትዕዛዝ - ትዕዛዞቜ, ማለትም. ዚሚጀምሩ መልዕክቶቜ /
  • መልስ - ለሌላ መልእክት ምላሜ ዹሆኑ መልእክቶቜ
  • ኊዲዮ - ዚድምጜ ፋይል á‹šá‹«á‹™ መልእክቶቜ
  • ሰነድ - ዹተላኹ ሰነድ ያላ቞ው መልዕክቶቜ
  • ፎቶ - ዚተላኩ ምስሎቜ ያላ቞ው መልዕክቶቜ
  • ተለጣፊ - ዹተላኹ ተለጣፊ ያላ቞ው መልዕክቶቜ
  • ቪዲዮ - ኚቪዲዮ ጋር መልዕክቶቜ
  • ድምጜ - ዚድምጜ መልዕክቶቜ
  • እውቂያ - ዹተጠቃሚውን ዚ቎ሌግራም ይዘት á‹šá‹«á‹™ መልዕክቶቜ
  • አካባቢ - ኚጂኊግራፊያዊ አካባቢ ጋር መልዕክቶቜ
  • ቊታ - ዹተላለፉ መልዕክቶቜ
  • ጚዋታ - ጚዋታዎቜ

በአንድ ተቆጣጣሪ ውስጥ አንዳንድ ማጣሪያዎቜን ማዋሃድ ኹፈለጉ ምልክቱን ብቻ ይጠቀሙ | - እንደ አመክንዮአዊ ወይም, እና ይፈርሙ & እንደ አመክንዮአዊ И. ለምሳሌ፣ ቊት ቪዲዮ፣ ምስል ወይም ሰነድ ሲደርሰው ተመሳሳይ ዘዮ እንዲጠራው ኚፈለጉ፣ ዚመልዕክት ተቆጣጣሪ ለመፍጠር ዹሚኹተለውን ምሳሌ ይጠቀሙ።

handler <- MessageHandler(callback, 
  MessageFilters$video | MessageFilters$photo | MessageFilters$document
)

ኚፓራሜትሮቜ ጋር ትዕዛዞቜን ማኹል

ትእዛዞቜ ምን እንደሆኑ, እንዎት እንደሚፈጠሩ እና ቊት ዹሚፈለገውን ትዕዛዝ እንዲፈጜም እንዎት ማስገደድ እንዳለብን አስቀድመን አውቀናል. ግን በአንዳንድ ሁኔታዎቜ, ኚትዕዛዝ ስም በተጚማሪ, እሱን ለማስፈጞም አንዳንድ መሚጃዎቜን ማለፍ አለብን.

ኹዚህ በታቜ ዹተወሰነ ቀን እና ሀገር ኹተሰጠው ዹቀን አይነት ኚምርት ካላንደር ዚሚመልስ ዚቊት ምሳሌ ነው።

ኚታቜ ያለው ቊት ዚምርት ቀን መቁጠሪያ ኀፒአይ ይጠቀማል isdayoff.ru.

ኮድ 3: ቀን እና አገር ዹሚዘግበው Bot

library(telegram.bot)

# сПзЎаёЌ экзеЌпляр класса Updater
updater <- Updater('1165649194:AAFkDqIzQ6Wq5GV0YU7PmEZcv1gmWIFIB_8')

# ПОшеЌ ЌетПЎ Ўля прОветсвОя
## кПЌаМЎа прОветвОя
check_date <- function(bot, update, args) {

  # вхПЎящОе ЎаММые
  day     <- args[1]  # Ўата
  country <- args[2]  # страМа

  # прПверка ввеЎёММых параЌетрПв
  if ( !grepl('\d{4}-\d{2}-\d{2}', day) ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(day, " - МекПрреткМая Ўата, ввеЎОте Ўату в фПрЌате ГГГГ-ММ-ДД"),
                    parse_mode = "Markdown")

  } else {
    day <- as.Date(day)
    # перевПЎОЌ в фПрЌат POSIXtl
    y <- format(day, "%Y")
    m <- format(day, "%m")
    d <- format(day, "%d")

  }

  # страМа Ўля прПверкО
  ## прПверяеЌ заЎаМа лО страМа
  ## еслО Ме заЎаМа устаМавлОваеЌ ru
  if ( ! country %in% c('ru', 'ua', 'by', 'kz', 'us') ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(country, " - МекПрретктМый кПЎ страМы, вПзЌПжММые зМачеМОя: ru, by, kz, ua, us. ЗапрПшеМы ЎаММые пП РПссОО."),
                    parse_mode = "Markdown")

    country <- 'ru'

  }

  # запрПс ЎаММых Оз API
  # кПЌпПМПвка HTTP запрПса
  url <- paste0("https://isdayoff.ru/api/getdata?",
                "year=",  y, "&",
                "month=", m, "&",
                "day=",   d, "&",
                "cc=",    country, "&",
                "pre=1&",
                "covid=1")

  # пПлучаеЌ Птвет
  res <- readLines(url)

  # ОМтрепретацОя Птвета
  out <- switch(res, 
                "0"   = "РабПчОй ЎеМь",
                "1"   = "НерабПчОй ЎеМь",
                "2"   = "СПкращёММый рабПчОй ЎеМь",
                "4"   = "covid-19",
                "100" = "ОшОбка в Ўате",
                "101" = "ДаММые Ме МайЎеМы",
                "199" = "ОшОбка сервОса")

  # ПтправляеЌ сППбщеМОе
  bot$sendMessage(update$message$chat_id, 
                  text = paste0(day, " - ", out),
                  parse_mode = "Markdown")

}

# сПзЎаёЌ ПбрабПтчОк 
date_hendler <- CommandHandler('check_date', check_date, pass_args = TRUE)

# ЎПбаляеЌ ПбрабПтчОк в ЎОспетчер
updater <- updater + date_hendler

# запускаеЌ бПта
updater$start_polling()

ኹላይ ያለውን ዚኮድ ምሳሌ ያስኪዱ፣ መጀመሪያ ቊትን ሲፈጥሩ በተቀበሉት እውነተኛ ቶኚን 'YOUR TOKEN' በመተካት ቊትአባት (ቊት ውስጥ ስለመፍጠር ተናገርኩ። ዚመጀመሪያው ጜሑፍ).

በጩር መሣሪያዎ ውስጥ አንድ ዘዮ ብቻ ያለው ቊት ፈጠርን። check_date, ይህ ዘዮ በተመሳሳዩ ስም ትዕዛዝ ይባላል.

ነገር ግን, ኚትዕዛዝ ስም በተጚማሪ, ይህ ዘዮ ሁለት ግቀቶቜን, ዹአገር ኮድ እና ቀኑን እንዲያስገቡ ይጠይቃል. በመቀጠል ቊት በተጠቀሰው ሀገር ውስጥ ዹተሰጠው ቀን ቅዳሜና እሁድ፣ አጭር ቀን ወይም ዚስራ ቀን መሆኑን በይፋዊው ዚምርት ካላንደር ያሚጋግጣል።

ዚምንፈጥሚው ዘዮ ኚትእዛዙ ጋር ተጚማሪ መለኪያዎቜን ለመቀበል, ክርክሩን ይጠቀሙ pass_args = TRUE ተግባር ውስጥ CommandHandler(), እና ዘዮን በሚፈጥሩበት ጊዜ, ኚሚያስፈልጉት ክርክሮቜ በተጚማሪ Bot, ዝማኔ አማራጭ ይፍጠሩ - ቀስቶቜ. በዚህ መንገድ ዹተፈጠሹው ዘዮ ኚትዕዛዝ ስም በኋላ ወደ ቊት ዚሚያስተላልፉትን መለኪያዎቜ ይቀበላል. መለኪያዎቹ በቊታ መለያዚት አለባ቞ውፀ ወደ ዘዮው እንደ ጜሑፍ ቬክተር ይላካሉ።

ቊትቜንን እንጀምር እና እንሞክር።

ዚ቎ሌግራም ቊት በ R ውስጥ መጻፍ (ክፍል 2): ዚትእዛዝ ድጋፍ እና ዚመልእክት ማጣሪያዎቜን ወደ ቊት ማኹል

ቊት ኚበስተጀርባ ያሂዱ

ማጠናቀቅ ያለብን ዚመጚሚሻው ደሹጃ ቊት ኚበስተጀርባ ማስጀመር ነው።

ይህንን ለማድሚግ ኹዚህ በታቜ ዹተገለጾውን ስልተ ቀመር ይኚተሉ።

  1. ዚቊት ኮዱን ኚቅጥያው ጋር ወደ ፋይል ያስቀምጡ R. በ RStudio ውስጥ ሲሰሩ, ይህ በምናሌው በኩል ይኹናወናል. ፋይል, ቡድን አስቀምጥ እንደ .
  2. መንገዱን ወደ ቢን ፎልደር አክል፣ እሱም በተራው ደግሞ R ቋንቋን በጫንክበት አቃፊ ውስጥ፣ ወደ ዚመንገዱ ተለዋዋጭ፣ መመሪያዎቜ እዚህ.
  3. 1 መስመር ዚሚጜፍበት መደበኛ ዚጜሑፍ ፋይል ይፍጠሩ፡- R CMD BATCH C:UsersAlseyDocumentsmy_bot.R... ይልቁንስ ሐ፡ተጠቃሚዎቜAlseyDocumentsmy_bot.R ወደ ቊት ስክሪፕትዎ ዚሚወስደውን መንገድ ይፃፉ። በተመሳሳይ ጊዜ, በመንገድ ላይ ምንም ዚሲሪሊክ ቁምፊዎቜ ወይም ክፍተቶቜ መኖራ቞ው አስፈላጊ ነው, ምክንያቱም ይህ ቊት በሚሠራበት ጊዜ ቜግር ሊያስኚትል ይቜላል. ያስቀምጡት እና ቅጥያውን በ txt ላይ ዚሌሊት ወፍ.
  4. ዚዊንዶውስ ተግባር መርሐግብርን ይክፈቱ, ይህንን ለማድሚግ ብዙ መንገዶቜ አሉ, ለምሳሌ, ማንኛውንም አቃፊ ይክፈቱ እና አድራሻውን ያስገቡ %windir%system32taskschd.msc /s. ሌሎቜ ዚማስነሻ ዘዎዎቜ ሊገኙ ይቜላሉ እዚህ.
  5. በመርሐግብር አውጪው ዹላይኛው ቀኝ ምናሌ ውስጥ "ተግባር ፍጠር ..." ዹሚለውን ጠቅ ያድርጉ.
  6. በ"አጠቃላይ" ትር ላይ ለተግባርዎ ብጁ ስም ይስጡ እና ማብሪያው ወደ "ሁሉም ተጠቃሚዎቜ አሂድ" ሁኔታ ይቀይሩት።
  7. ወደ "እርምጃዎቜ" ትር ይሂዱ, "ፍጠር" ን ጠቅ ያድርጉ. በ "ፕሮግራም ወይም ስክሪፕት" መስክ ውስጥ "አስስ" ዹሚለውን ይጫኑ, በሁለተኛው ደሹጃ ዹተፈጠሹውን ያግኙ ዚሌሊት ወፍ ፋይል ያድርጉ እና እሺን ጠቅ ያድርጉ።
  8. እሺን ጠቅ ያድርጉ እና አስፈላጊ ኹሆነ ለስርዓተ ክወና መለያዎ ዹይለፍ ቃል ያስገቡ።
  9. ዹተፈጠሹውን ተግባር በጊዜ ሰሌዳው ውስጥ ይፈልጉ, ይምሚጡት እና ኚታቜ በቀኝ ጥግ ላይ ያለውን "አሂድ" ቁልፍን ጠቅ ያድርጉ.

ዚእኛ ቊት ኚበስተጀርባ ይሰራል እና ስራውን እስኪያቆሙ ድሚስ ይሰራል ወይም ዚተኚፈተበትን ፒሲዎን ወይም አገልጋይዎን ያጥፉ።

መደምደሚያ

በዚህ ጜሑፍ ውስጥ መልዕክቶቜን መላክ ብቻ ሳይሆን ለገቢ መልእክቶቜ እና ትዕዛዞቜ ምላሜ መስጠት ዚሚቜል ሙሉ ቊት እንዎት እንደሚፃፍ አውቀናል. ያገኙት እውቀት አብዛኛዎቹን ቜግሮቜዎን ለመፍታት በቂ ነው።

ዚሚቀጥለው ርዕስ ለበለጠ ምቹ ስራ ዹቁልፍ ሰሌዳን ወደ ቊት እንዎት እንደሚጚምር እንነጋገራለን.

ዚእኔን ይመዝገቡ ቎ሌግራም О youtube ቻናሎቜ.

ምንጭ: hab.com

አስተያዚት ያክሉ