R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (2 කොටස): බොට් වෙත විධාන සහය සහ පණිවිඩ පෙරහන් එකතු කිරීම

В පෙර ප්රකාශනය අපි බොට් එකක් සාදා ගන්නේ කෙසේදැයි සොයා බැලුවෙමු, පන්තියේ උදාහරණයක් ආරම්භ කළෙමු Bot සහ එය භාවිතයෙන් පණිවිඩ යැවීමේ ක්‍රම පිළිබඳව හුරුපුරුදු විය.

මෙම ලිපියෙන් මම මෙම මාතෘකාව දිගටම කරගෙන යන්නෙමි, එබැවින් මෙම ලිපිය කියවීමෙන් පසුව පමණක් කියවීම ආරම්භ කිරීමට මම නිර්දේශ කරමි පළමු කොටස.

මෙවර අපි අපගේ බොට් පුනර්ජීවනය කරන්නේ කෙසේද සහ එයට විධාන සහාය එක් කරන්නේ කෙසේදැයි සොයා බලමු, එසේම පන්තිය සමඟ දැන හඳුනා ගන්නෙමු. Updater.

ලිපිය අතරතුර, අපි සරල බොට් කිහිපයක් ලියන්නෙමු, දෙවැන්න, දී ඇති දිනයක් සහ රටේ කේතයක් මත පදනම්ව, නිෂ්පාදන දින දර්ශනයට අනුව දී ඇති රටක දිනයක් සති අන්තයක්ද නැතහොත් වැඩ කරන දිනයක්ද යන්න තීරණය කරයි. එහෙත්, පෙර මෙන්, ලිපියේ අරමුණ පැකේජ අතුරුමුහුණත සමඟ ඔබව හුරු කරවීමයි telegram.bot ඔබේම ගැටළු විසඳීමට.

R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (2 කොටස): බොට් වෙත විධාන සහය සහ පණිවිඩ පෙරහන් එකතු කිරීම

"R හි විදුලි පණිවුඩ බොට් ලිවීම" මාලාවේ සියලුම ලිපි

  1. අපි බොට් එකක් සාදා එය ටෙලිග්‍රාම් වලින් පණිවිඩ යැවීමට භාවිතා කරමු
  2. විධාන සහාය සහ පණිවිඩ පෙරහන් බොට් වෙත එක් කරන්න

අන්තර්ගතය

ඔබ දත්ත විශ්ලේෂණයට කැමති නම්, ඔබ මගේ ගැන උනන්දු විය හැකිය ටෙලිග්රාෆ් и ප්රථම අදියර නාලිකා. බොහෝ අන්තර්ගතයන් R භාෂාව සඳහා කැප කර ඇත.

  1. යාවත්කාලීන පන්තිය
  2. හසුරුවන්නන් - හසුරුවන්නන්
  3. පළමු විධානය bot, command handler වෙත එක් කරන්න
  4. කෙටි පණිවුඩ සකසනය සහ පෙරහන්
  5. පරාමිතීන් සමඟ විධාන එකතු කිරීම
  6. බොට් එක පසුබිමේ ධාවනය කරන්න
  7. නිගමනය

යාවත්කාලීන පන්තිය

Updater යනු ඔබට ටෙලිග්‍රාම් බොට් එකක් සංවර්ධනය කිරීම පහසු කරන පන්තියක් වන අතර, ආවරණය යටතේ ඇති පන්තිය භාවිතා කරයි Dispetcher. පන්ති පැවරුම Updater බොට් වෙතින් යාවත්කාලීන ලබා ගැනීමයි (පෙර ලිපියේ අපි මේ සඳහා ක්‍රමය භාවිතා කළෙමු getUpdates()), සහ ඒවා තවදුරටත් මාරු කරන්න Dispetcher.

පිළිවෙළට Dispetcher ඔබ විසින් සාදන ලද හසුරුවන්නන් අඩංගු වේ, i.e. පන්ති වස්තූන් Handler.

හසුරුවන්නන් - හසුරුවන්නන්

ඔබ එකතු කරන්නන් සමඟ Dispetcher විවිධ සිදුවීම් සඳහා බොට් ප්රතික්රියා. මෙම ලිපිය ලියන අවස්ථාවේ දී telegram.bot පහත ආකාරයේ හසුරුවන්න එකතු කර ඇත:

  • MessageHandler — පණිවිඩ හසුරුවන්නා
  • CommandHandler - විධාන හසුරුවන්නා
  • CallbackQueryHandler — Inline වෙතින් යවන ලද යතුරුපුවරු සඳහා දත්ත හසුරුවන්න
  • ErrorHandler - බොට් වෙතින් යාවත්කාලීන ඉල්ලා සිටින විට දෝෂ හසුරුවන්න

පළමු විධානය bot, command handler වෙත එක් කරන්න

ඔබ මීට පෙර කිසි දිනක bots භාවිතා කර නොමැති නම් සහ විධානයක් යනු කුමක්දැයි නොදන්නේ නම්, ඉදිරියට slash භාවිතයෙන් bot වෙත විධාන යැවිය යුතුය. / උපසර්ගයක් ලෙස.

අපි සරල විධාන වලින් පටන් ගනිමු, i.e. විධානයෙන් ආයුබෝවන් කියන්න අපි අපේ bot ට උගන්වමු /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()

හරහා බොට් එක සෑදීමේදී ඔබට ලැබුණු සැබෑ ටෝකනය සමඟ 'ඔබේ බොට් ටෝකනය' ප්‍රතිස්ථාපනය කිරීමෙන් පසු ඉහත කේත උදාහරණය ක්‍රියාත්මක කරන්න. බොට්ෆදර් (මම බොට් එකක් නිර්මාණය කිරීම ගැන කතා කළා පළමු ලිපිය).

ක්රමය start_polling() පන්ති Updater, කේතය අවසානයේ භාවිතා වන, බොට් වෙතින් යාවත්කාලීන ඉල්ලීම් සහ සැකසීමේ නිමක් නැති පුඩුවක් ආරම්භ කරයි.

දැන් අපි Telegram විවෘත කර පළමු විධානය අපගේ බොට් වෙත ලියන්නෙමු /hi.

R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (2 කොටස): බොට් වෙත විධාන සහය සහ පණිවිඩ පෙරහන් එකතු කිරීම

දැන් අපේ bot එකට command එක තේරෙනවා /hi, සහ අපට සුබ පතන්නේ කෙසේදැයි දනී.

ක්‍රමානුකූලව, එවැනි සරල බොට් එකක් තැනීමේ ක්‍රියාවලිය පහත පරිදි නිරූපණය කළ හැකිය.

R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (2 කොටස): බොට් වෙත විධාන සහය සහ පණිවිඩ පෙරහන් එකතු කිරීම

  1. පන්තියේ උදාහරණයක් සාදන්න Updater;
  2. අපි ක්රම නිර්මාණය කරමු, i.e. අපගේ බොට් ඉටු කරන කාර්යයන්. කේත උදාහරණයේ මෙය කාර්යයකි say_hello(). ඔබ බොට් ක්‍රම ලෙස භාවිතා කරන ශ්‍රිතවලට අවශ්‍ය තර්ක දෙකක් තිබිය යුතුය - බොට් и යාවත්කාලීන, සහ එක් විකල්ප - args. තර්කය බොට්, මෙය ඔබගේ බොට් වේ, එහි ආධාරයෙන් ඔබට පණිවිඩ වලට පිළිතුරු දීමට, පණිවිඩ යැවීමට, හෝ බොට් වෙත තිබෙන වෙනත් ක්‍රම භාවිතා කළ හැක. තර්කය යාවත්කාලීන පරිශීලකයාගෙන් බොට් හට ලැබුණු දෙය මෙයයි, ඇත්ත වශයෙන්ම, ක්‍රමය භාවිතා කරමින් පළමු ලිපියෙන් අපට ලැබුණු දේ getUpdates(). තර්කය args විධානය සමඟ පරිශීලකයා විසින් එවන ලද අතිරේක දත්ත සැකසීමට ඔබට ඉඩ සලසයි, අපි මෙම මාතෘකාවට ටික වේලාවකට පසුව නැවත පැමිණෙමු;
  3. අපි හසුරුවන්නන් නිර්මාණය කරමු, i.e. අපි සමහර පරිශීලක ක්‍රියා පෙර පියවරේදී නිර්මාණය කරන ලද ක්‍රම සමඟ සම්බන්ධ කරමු. අත්‍යවශ්‍යයෙන්ම, හසුරුවන්නා යනු ප්‍රේරකයකි, සමහර bot ශ්‍රිතයක් කැඳවන සිදුවීමකි. අපගේ උදාහරණයේ දී, එවැනි ප්‍රේරකයක් යනු විධානයක් යැවීමයි /hi, සහ කණ්ඩායම විසින් ක්රියාත්මක කරනු ලැබේ hi_hendler <- CommandHandler('hi', say_hello). පළමු කාර්යය තර්කය CommandHandler() අපගේ නඩුවේදී විධානයක් නියම කිරීමට ඔබට ඉඩ සලසයි hi, එයට බොට් ප්‍රතිචාර දක්වනු ඇත. දෙවන තර්කය ඔබට බොට් ක්රමය නියම කිරීමට ඉඩ සලසයි, අපි ක්රමය අමතන්නෙමු say_hello, පරිශීලකයා පළමු තර්කයේ දක්වා ඇති විධානය ඇමතුවේ නම් එය ක්‍රියාත්මක වේ;
  4. මීළඟට, අපි නිර්මාණය කළ හසුරුවන්නා අපගේ පන්තියේ නිදසුනෙහි ඩිස්පැචර් වෙත එකතු කරමු Updater. ඔබට ක්‍රම කිහිපයකින් හසුරුවන්න එකතු කළ හැකිය; ඉහත උදාහරණයේදී, මම ලකුණ භාවිතා කරමින් සරලම එක භාවිතා කළෙමි +, i.e. updater <- updater + hi_hendler. ක්‍රමය භාවිතයෙන් ද එයම කළ හැකිය add_handler(), පන්තියට අයත් වේ Dispatcher, ඔබට මෙම ක්‍රමය මේ ආකාරයෙන් සොයාගත හැකිය: updater$dispatcher$add_handler();
  5. විධානය භාවිතා කර bot දියත් කරන්න start_polling().

කෙටි පණිවුඩ සකසනය සහ පෙරහන්

බොට් වෙත විධාන යවන්නේ කෙසේදැයි අපි සොයා ගත්තෙමු, නමුත් සමහර විට අපට විධානවලට පමණක් නොව සාමාන්‍ය කෙටි පණිවිඩවලටද ප්‍රතිචාර දැක්වීමට බොට් අවශ්‍ය වේ. මෙය සිදු කිරීම සඳහා ඔබ පණිවිඩ හසුරුවන්න භාවිතා කළ යුතුය - MessageHandler.

සාමාන්ය MessageHandler එන සියලුම පණිවිඩ වලට ප්‍රතිචාර දක්වනු ඇත. එමනිසා, පණිවිඩ හසුරුවන්නන් බොහෝ විට පෙරහන් සමඟ භාවිතා කරයි. විධානයෙන් පමණක් නොව ආයුබෝවන් කියන්නට අපි බොට උගන්වමු /hi, නමුත් බොට් වෙත යවන ලද පණිවිඩයේ පහත වචන වලින් එකක් දිස්වන සෑම විටම: hello, hello, salute, hai, bonjour.

දැනට අපි අලුත් ක්‍රම කිසිවක් ලියන්නේ නැහැ, මොකද... බොට් අපට ආචාර කරන ක්‍රමයක් දැනටමත් අප සතුව ඇත. අපට අවශ්‍ය වන්නේ අවශ්‍ය ෆිල්ටරය සහ පණිවිඩ හසුරුවන්න සෑදීමයි.

කේතය 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()

හරහා බොට් එක සෑදීමේදී ඔබට ලැබුණු සැබෑ ටෝකනය සමඟ 'ඔබේ බොට් ටෝකනය' ප්‍රතිස්ථාපනය කිරීමෙන් පසු ඉහත කේත උදාහරණය ක්‍රියාත්මක කරන්න. බොට්ෆදර් (මම බොට් එකක් නිර්මාණය කිරීම ගැන කතා කළා පළමු ලිපිය).

දැන් අපි කලින් ලැයිස්තුගත කර ඇති සුබපැතුම් වචන අඩංගු පණිවිඩ කිහිපයක් බොට් වෙත යැවීමට උත්සාහ කරමු:
R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (2 කොටස): බොට් වෙත විධාන සහය සහ පණිවිඩ පෙරහන් එකතු කිරීම

ඉතින් මුලින්ම අපි බොට් එකට ඉගැන්නුවේ ආයුබෝවන් කියන්න විතරක් නෙවෙයි, සුබ පැතුමකට ප්‍රතිචාර දක්වන්න. අපි මේක කළේ තර්කය පාවිච්චි කරලා පණිවිඩයට_ප්‍රතිචාර දක්වන්න, ක්‍රමයේ ඇති sendMessage(), ඔබට ප්‍රතිචාර දැක්වීමට අවශ්‍ය පණිවිඩයේ හැඳුනුම්පත මාරු කිරීමට අවශ්‍ය වේ. ඔබට පණිවිඩ හැඳුනුම්පත මේ ආකාරයට ලබා ගත හැකිය: update$message$message_id.

නමුත් අපි කරපු ප්‍රධානම දේ තමයි ශ්‍රිතය භාවිතා කරලා බොට් එකට ෆිල්ටරයක් ​​එකතු කරන එක BaseFilter():

# создаём фильтры
MessageFilters$hi <- BaseFilter( 

  # анонимная фильтрующая функция
  function(message) {

    # проверяем, встречается ли в тексте сообщения слова приветствия
    grepl(x           = message$text, 
          pattern     = 'привет|здравствуй|салют|хай|бонжур',
          ignore.case = TRUE)
  }

)

ඔබ දැක ඇති පරිදි, වස්තුවට පෙරහන් එකතු කළ යුතුය පණිවිඩ පෙරහන්, මුලදී දැනටමත් කුඩා සූදානම් කළ පෙරහන් කට්ටලයක් අඩංගු වේ. අපගේ උදාහරණයේ දී, වස්තුව වෙත පණිවිඩ පෙරහන් අපි මූලද්රව්යයක් එකතු කළා hi, මෙය නව පෙරහනකි.

කාර්යය කිරීමට BaseFilter() ඔබ පෙරහන් කාර්යය සමත් විය යුතුය. අත්‍යවශ්‍යයෙන්ම, ෆිල්ටරයක් ​​යනු පණිවිඩ අවස්ථාවක් ලබාගෙන ආපසු එන කාර්යයක් පමණි සැබෑ හෝ අසත්‍යය. අපගේ උදාහරණයේ දී, අපි මූලික ශ්‍රිතය භාවිතා කරමින් සරල ශ්‍රිතයක් ලිව්වෙමු grepl() පණිවිඩ පෙළ සහ එය සාමාන්‍ය ප්‍රකාශනයට ගැළපේ නම් පරීක්ෂා කරයි привет|здравствуй|салют|хай|бонжур ආපසු පැමිණේ සැබෑ.

ඊළඟට අපි පණිවිඩ හසුරුවන්නක් සාදන්නෙමු hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi). පළමු කාර්යය තර්කය MessageHandler() හසුරුවන්නා ඇමතීමේ ක්‍රමය වන අතර, දෙවන තර්කය වන්නේ එය හඳුන්වනු ලබන පෙරණයයි. අපගේ නඩුවේදී, අප විසින් නිර්මාණය කරන ලද පෙරහන මෙයයි MessageFilters$hi.

හොඳයි, අවසානයේදී, අපි නිර්මාණය කළ හසුරුවන්නා යවන්නාට එකතු කරමු hi_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

මම ඉහත ලියා ඇති පරිදි, පැකේජයේ telegram.bot සහ වස්තුව පණිවිඩ පෙරහන් ඔබට භාවිතා කළ හැකි බිල්ට්-ඉන් ෆිල්ටර් කට්ටලයක් දැනටමත් ඇත:

  • සියල්ල - සියලුම පණිවිඩ
  • පෙළ - කෙටි පණිවිඩ
  • විධානය - විධාන, i.e. ආරම්භ වන පණිවිඩ /
  • reply — වෙනත් පණිවිඩයකට පිළිතුරක් වන පණිවිඩ
  • ශ්‍රව්‍ය - ශ්‍රව්‍ය ගොනුවක් අඩංගු පණිවිඩ
  • ලේඛනය - යවන ලද ලේඛනයක් සහිත පණිවිඩ
  • ඡායාරූපය - යවන ලද පින්තූර සහිත පණිවිඩ
  • ස්ටිකරය - යවන ලද ස්ටිකරයක් සහිත පණිවිඩ
  • වීඩියෝ - වීඩියෝ සමඟ පණිවිඩ
  • හඬ - හඬ පණිවිඩ
  • සම්බන්ධතා - පරිශීලකයාගේ විදුලි පණිවුඩ අන්තර්ගතය අඩංගු පණිවිඩ
  • ස්ථානය - භූ පිහිටීම සහිත පණිවිඩ
  • ස්ථානය - යොමු කළ පණිවිඩ
  • ක්රීඩාව - ක්රීඩා

ඔබට එක් හසුරුවන්නක් තුළ පෙරහන් කිහිපයක් ඒකාබද්ධ කිරීමට අවශ්‍ය නම් ලකුණ භාවිතා කරන්න | - තාර්කික ලෙස නැත්නම්, සහ අත්සන් කරන්න & තාර්කික ලෙස И. උදාහරණයක් ලෙස, ඔබට වීඩියෝවක්, රූපයක් හෝ ලේඛනයක් ලැබෙන විට බොට් එකම ක්‍රමය ඇමතීමට අවශ්‍ය නම්, පණිවිඩ හසුරුවන්නක් සෑදීමට පහත උදාහරණය භාවිතා කරන්න:

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

පරාමිතීන් සමඟ විධාන එකතු කිරීම

අපි දැනටමත් දන්නවා විධාන යනු කුමක්ද, ඒවා නිර්මාණය කරන්නේ කෙසේද සහ අපේක්ෂිත විධානය ක්‍රියාත්මක කිරීමට bot හට බල කරන්නේ කෙසේද යන්න. නමුත් සමහර අවස්ථා වලදී, විධාන නාමයට අමතරව, එය ක්‍රියාත්මක කිරීම සඳහා අපට දත්ත කිහිපයක් ලබා දිය යුතුය.

පහත දැක්වෙන්නේ, ලබා දී ඇති දිනයක් සහ රටක් ලබා දී, නිෂ්පාදන දින දර්ශනයෙන් ඔබට දින වර්ගය ලබා දෙන බොට් එකක උදාහරණයකි.

පහත බොට් නිෂ්පාදන දින දර්ශන API භාවිතා කරයි isdayoff.ru.

කේතය 3: දිනය සහ රට අනුව වාර්තා කරන බොට්

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()

හරහා බොට් එක සෑදීමේදී ඔබට ලැබුණු සැබෑ ටෝකනය සමඟ 'ඔබේ බොට් ටෝකනය' ප්‍රතිස්ථාපනය කිරීමෙන් පසු ඉහත කේත උදාහරණය ක්‍රියාත්මක කරන්න. බොට්ෆදර් (මම බොට් එකක් නිර්මාණය කිරීම ගැන කතා කළා පළමු ලිපිය).

අපි එහි අවි ගබඩාවේ එක් ක්‍රමයක් පමණක් ඇති බොට් එකක් නිර්මාණය කළෙමු check_date, මෙම ක්රමය එකම නමේ විධානය මගින් හැඳින්වේ.

නමුත්, විධාන නාමයට අමතරව, මෙම ක්රමය මඟින් ඔබට පරාමිති දෙකක්, රටේ කේතය සහ දිනය ඇතුළත් කිරීමට අවශ්ය වේ. ඊළඟට, නිල නිෂ්පාදන දින දර්ශනයට අනුව නිශ්චිත රටෙහි දෙන ලද දිනයක් සති අන්තයක්, කෙටි කරන ලද දිනයක් හෝ වැඩ කරන දිනයක් දැයි බොට් පරීක්ෂා කරයි.

විධානය සමඟ අමතර පරාමිති පිළිගැනීමට අප නිර්මාණය කරන ක්‍රමය සඳහා, තර්කය භාවිතා කරන්න pass_args = TRUE කාර්යයේ CommandHandler(), සහ ක්රමයක් නිර්මාණය කිරීමේදී, අවශ්ය තර්ක වලට අමතරව බොට්, යාවත්කාලීන විකල්ප එකක් සාදන්න - args. මෙලෙස නිර්මාණය කරන ලද ක්‍රමය මඟින් විධාන නාමයෙන් පසුව ඔබ බොට් වෙත ලබා දෙන පරාමිති පිළිගනු ඇත. පරාමිති අවකාශයකින් වෙන් කළ යුතුය; ඒවා පෙළ දෛශිකයක් ලෙස ක්‍රමයට යවනු ලැබේ.

අපි අපේ බොට් එක දියත් කර පරීක්ෂා කරමු.

R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (2 කොටස): බොට් වෙත විධාන සහය සහ පණිවිඩ පෙරහන් එකතු කිරීම

බොට් එක පසුබිමේ ධාවනය කරන්න

අපි සම්පූර්ණ කළ යුතු අවසාන පියවර වන්නේ පසුබිමේ බොට් දියත් කිරීමයි.

මෙය සිදු කිරීම සඳහා, පහත විස්තර කර ඇති ඇල්ගොරිතම අනුගමනය කරන්න:

  1. බොට් කේතය R දිගුව සහිත ගොනුවකට සුරකින්න. RStudio හි වැඩ කරන විට, මෙය මෙනුව හරහා සිදු කෙරේ. ගොනුව, කණ්ඩායම ලෙස සුරකින්න ....
  2. ඔබ R භාෂාව ස්ථාපනය කළ ෆෝල්ඩරයේ පිහිටා ඇති බින් ෆෝල්ඩරයට මාර්ගය එක් කරන්න, Path විචල්‍යයට, උපදෙස් මෙහි.
  3. පේළි 1ක් ලියන සාමාන්‍ය පෙළ ගොනුවක් සාදන්න: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R... වෙනුවට C:UsersAlseyDocumentsmy_bot.R ඔබගේ bot පිටපතට මාර්ගය ලියන්න. ඒ අතරම, මඟ දිගේ සිරිලික් අක්ෂර හෝ අවකාශයන් නොමැති වීම වැදගත්ය මෙය bot ධාවනය කිරීමේදී ගැටළු ඇති කළ හැක. එය සුරකින්න, එහි දිගුව ප්‍රතිස්ථාපනය කරන්න txt මත වවුලා.
  4. Windows Task Scheduler විවෘත කරන්න, මෙය කිරීමට බොහෝ ක්‍රම තිබේ, උදාහරණයක් ලෙස, ඕනෑම ෆෝල්ඩරයක් විවෘත කර ලිපිනය ඇතුළත් කරන්න %windir%system32taskschd.msc /s. වෙනත් දියත් කිරීමේ ක්රම සොයා ගත හැක මෙහි.
  5. උපලේඛකයේ ඉහළ දකුණු මෙනුවේ, "කාර්යයක් සාදන්න..." ක්ලික් කරන්න.
  6. "සාමාන්‍ය" ටැබය මත, ඔබගේ කාර්යයට අභිරුචි නමක් ලබා දී, "සියලු පරිශීලකයින් සඳහා ධාවනය" තත්වයට මාරු කරන්න.
  7. "ක්රියා" ටැබයට යන්න, "සාදන්න" ක්ලික් කරන්න. "වැඩසටහන් හෝ ස්ක්‍රිප්ට්" ක්ෂේත්‍රයේ, "බ්‍රවුස්" ක්ලික් කරන්න, දෙවන පියවරේදී සාදන ලද එක සොයා ගන්න වවුලා ගොනු කර OK ක්ලික් කරන්න.
  8. හරි ක්ලික් කරන්න, අවශ්ය නම්, ඔබගේ මෙහෙයුම් පද්ධති ගිණුම සඳහා මුරපදය ඇතුළත් කරන්න.
  9. උපලේඛනයේ නිර්මාණය කරන ලද කාර්යය සොයා ගන්න, එය තෝරාගෙන පහළ දකුණු කෙළවරේ ඇති "ධාවනය" බොත්තම ක්ලික් කරන්න.

අපගේ බොට් පසුබිමේ ක්‍රියාත්මක වන අතර ඔබ කාර්යය නවත්වන තෙක් හෝ එය දියත් කළ ඔබේ පරිගණකය හෝ සේවාදායකය ක්‍රියා විරහිත කරන තෙක් ක්‍රියා කරයි.

නිගමනය

මෙම ලිපියෙන්, පණිවිඩ යැවීමට පමණක් නොව, එන පණිවිඩ සහ විධාන වලට ප්‍රතිචාර දැක්විය හැකි සම්පූර්ණ බොට් එකක් ලියන්නේ කෙසේදැයි අපි සොයා ගත්තෙමු. ලබාගත් දැනුම දැනටමත් ඔබගේ ගැටළු බොහොමයක් විසඳීමට ප්රමාණවත්ය.

වඩාත් පහසු වැඩ සඳහා බොට් වෙත යතුරු පුවරුවක් එකතු කරන්නේ කෙසේද යන්න ගැන ඊළඟ ලිපියෙන් කතා කරනු ඇත.

මගේ වෙත දායක වන්න ටෙලිග්රාෆ් и ප්රථම අදියර නාලිකා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න