R เชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชฒเช–เชตเซเช‚ (เชญเชพเช— 2): เชฌเซ‹เชŸเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช…เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชซเชฟเชฒเซเชŸเชฐ เช‰เชฎเซ‡เชฐเชตเซเช‚

ะ’ เช…เช—เชพเช‰เชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ เช…เชฎเซ‡ เชฌเซ‹เชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซ‹ เชคเซ‡ เชถเซ‹เชงเซ€ เช•เชพเชขเซเชฏเซเช‚, เชตเชฐเซเช—เชจเซ‹ เชฆเชพเช–เชฒเซ‹ เชถเชฐเซ‚ เช•เชฐเซเชฏเซ‹ Bot เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชชเชฆเซเชงเชคเชฟเช“เชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชฅเชฏเชพ.

เช† เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เช† เชตเชฟเชทเชฏ เชšเชพเชฒเซ เชฐเชพเช–เซเช‚ เช›เซเช‚, เชคเซ‡เชฅเซ€ เชนเซเช‚ เช† เชฒเซ‡เช– เชตเชพเช‚เชšเซเชฏเชพ เชชเช›เซ€ เชœ เชตเชพเช‚เชšเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซเช‚ เช›เซเช‚ เชชเซเชฐเชฅเชฎ เชญเชพเช—.

เช† เชตเช–เชคเซ‡ เช†เชชเชฃเซ‡ เช†เชชเชฃเชพ เชฌเซ‹เชŸเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชจเชฐเซเชœเซ€เชตเชฟเชค เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช‰เชฎเซ‡เชฐเชตเซ‹ เชคเซ‡ เชถเซ‹เชงเซ€เชถเซเช‚ เช…เชจเซ‡ เชตเชฐเซเช— เชธเชพเชฅเซ‡ เชชเชฐเชฟเชšเชฟเชค เชชเชฃ เชฅเชˆเชถเซเช‚. Updater.

เชฒเซ‡เช– เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช…เชฎเซ‡ เช˜เชฃเชพ เชธเชฐเชณ เชฌเซ‰เชŸเซ‹ เชฒเช–เซ€เชถเซเช‚, เชฌเชพเชฆเชฎเชพเช‚ เช†เชชเซ‡เชฒ เชคเชพเชฐเซ€เช– เช…เชจเซ‡ เชฆเซ‡เชถเชจเชพ เช•เซ‹เชกเชจเชพ เช†เชงเชพเชฐเซ‡, เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชถเซ‡ เช•เซ‡ เช†เชชเซ‡เชฒ เชฆเซ‡เชถเชฎเชพเช‚ เช•เซ‹เชˆ เชฆเชฟเชตเชธ เชตเซ€เช•เชเชจเซเชก เช›เซ‡ เช•เซ‡ เชชเซเชฐเซ‹เชกเช•เซเชถเชจ เช•เซ‡เชฒเซ‡เชจเซเชกเชฐ เช…เชจเซเชธเชพเชฐ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชฆเชฟเชตเชธ. เชชเชฐเช‚เชคเซ, เชชเชนเซ‡เชฒเชพเชจเซ€ เชœเซ‡เชฎ, เชฒเซ‡เช–เชจเซ‹ เชนเซ‡เชคเซ เชคเชฎเชจเซ‡ เชชเซ‡เช•เซ‡เชœ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡ telegram.bot เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชนเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡.

R เชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชฒเช–เชตเซเช‚ (เชญเชพเช— 2): เชฌเซ‹เชŸเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช…เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชซเชฟเชฒเซเชŸเชฐ เช‰เชฎเซ‡เชฐเชตเซเช‚

"R เชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชฒเช–เชตเซเช‚" เชถเซเชฐเซ‡เชฃเซ€เชจเชพ เชคเชฎเชพเชฎ เชฒเซ‡เช–เซ‹

  1. เช…เชฎเซ‡ เชเช• เชฌเซ‹เชŸ เชฌเชจเชพเชตเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€เช เช›เซ€เช
  2. เชฌเซ‹เชŸเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช…เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชซเชฟเชฒเซเชŸเชฐเซเชธ เช‰เชฎเซ‡เชฐเซ‹

เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพ

เชœเซ‹ เชคเชฎเชจเซ‡ เชกเซ‡เชŸเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชฎเชพเช‚ เชฐเชธ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชจเซ‡ เชฎเชพเชฐเชพเชฎเชพเช‚ เชฐเชธ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ ะธ เชฏเซ เชŸเซเชฏเซเชฌ เชšเซ‡เชจเชฒเซ‹ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ R เชญเชพเชทเชพเชจเซ‡ เชธเชฎเชฐเซเชชเชฟเชค เช›เซ‡.

  1. เช…เชชเชกเซ‡เชŸเชฐ เชตเชฐเซเช—
  2. เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ - เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ
  3. เชฌเซ‹เชŸ, เช•เชฎเชพเชจเซเชก เชนเซ‡เชจเซเชกเชฒเชฐเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เช†เชฆเซ‡เชถ เช‰เชฎเซ‡เชฐเซ‹
  4. เชŸเซ‡เช•เซเชธเซเชŸ เชฎเซ‡เชธเซ‡เชœ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เช…เชจเซ‡ เชซเชฟเชฒเซเชŸเชฐเซเชธ
  5. เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเชพเชฅเซ‡ เช†เชฆเซ‡เชถเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡
  6. เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟเชฎเชพเช‚ เชฌเซ‹เชŸ เชšเชฒเชพเชตเซ‹
  7. เชจเชฟเชทเซเช•เชฐเซเชท

เช…เชชเชกเซ‡เชŸเชฐ เชตเชฐเซเช—

Updater เชเช• เชเชตเซ‹ เชตเชฐเซเช— เช›เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชตเชฟเช•เชธเชพเชตเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชนเซ‚เชก เชนเซ‡เช เชณเชจเชพ เชตเชฐเซเช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ Dispetcher. เชตเชฐเซเช— เชธเซ‹เช‚เชชเชฃเซ€ Updater เชฌเซ‹เชŸ เชคเชฐเชซเชฅเซ€ เช…เชชเชกเซ‡เชŸเซเชธ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช›เซ‡ (เช…เช—เชพเช‰เชจเชพ เชฒเซ‡เช–เชฎเชพเช‚ เช…เชฎเซ‡ เช† เชนเซ‡เชคเซ เชฎเชพเชŸเซ‡ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹ getUpdates()), เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เช†เช—เชณ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹ Dispetcher.

เชคเซ‡เชจเชพ เชตเชณเชพเช‚เช•เชฎเชพเช‚ Dispetcher เชคเชฎเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชธเชฎเชพเชตเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชตเชฐเซเช— เชตเชธเซเชคเซเช“ Handler.

เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ - เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ

เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชธเชพเชฅเซ‡ เชคเชฎเซ‡ เช‰เชฎเซ‡เชฐเซ‹ เช›เซ‹ Dispetcher เชตเชฟเชตเชฟเชง เช˜เชŸเชจเชพเช“ เชฎเชพเชŸเซ‡ เชฌเซ‹เชŸ เชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเช“. เชฎเชพเช‚ เช† เชฒเซ‡เช– เชฒเช–เชคเซ€ เชตเช–เชคเซ‡ telegram.bot เชจเซ€เชšเซ‡เชจเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡:

  • MessageHandler โ€” เชฎเซ‡เชธเซ‡เชœ เชนเซ‡เชจเซเชกเชฒเชฐ
  • เช•เชฎเชพเชจเซเชก เชนเซ‡เชจเซเชกเชฒเชฐ - เช•เชฎเชพเชจเซเชก เชนเซ‡เชจเซเชกเชฒเชฐ
  • CallbackQueryHandler โ€” เช‡เชจเชฒเชพเช‡เชจเชฅเซ€ เชฎเซ‹เช•เชฒเซ‡เชฒเชพ เช•เซ€เชฌเซ‹เชฐเซเชก เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพ เชนเซ‡เชจเซเชกเชฒเชฐ
  • เชเชฐเชฐเชนเซ‡เชจเซเชกเชฒเชฐ โ€” เชฌเซ‹เชŸเชฎเชพเช‚เชฅเซ€ เช…เชชเชกเซ‡เชŸเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชเชฐเชฐ เชนเซ‡เชจเซเชกเชฒเชฐ

เชฌเซ‹เชŸ, เช•เชฎเชพเชจเซเชก เชนเซ‡เชจเซเชกเชฒเชฐเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เช†เชฆเซ‡เชถ เช‰เชฎเซ‡เชฐเซ‹

เชœเซ‹ เชคเชฎเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เช•เซเชฏเชพเชฐเซ‡เชฏ เชฌเซ‰เชŸเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชจ เชนเซ‹เชฏ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เช–เชฌเชฐ เชจ เชนเซ‹เชฏ เช•เซ‡ เช†เชฆเซ‡เชถ เชถเซเช‚ เช›เซ‡, เชคเซ‹ เชฌเซ‰เชŸเชจเซ‡ เช†เชฆเซ‡เชถเซ‹ เชซเซ‹เชฐเชตเชฐเซเชก เชธเซเชฒเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพ เชœเซ‹เชˆเช. / เช‰เชชเชธเชฐเซเช— เชคเชฐเซ€เช•เซ‡.

เช…เชฎเซ‡ เชธเชฐเชณ เช†เชฆเซ‡เชถเซ‹เชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€เชถเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡. เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เชฌเซ‹เชŸเชจเซ‡ เช†เชฆเซ‡เชถ เชชเชฐ เชนเซ‡เชฒเซ‹ เช•เชนเซ‡เชคเชพ เชถเซ€เช–เชตเซ€เช /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, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‹เชกเชจเชพ เช…เช‚เชคเซ‡ เชฅเชพเชฏ เช›เซ‡, เชคเซ‡ เชฌเซ‹เชŸเชฎเชพเช‚เชฅเซ€ เช…เชชเชกเซ‡เชŸเซเชธเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช…เชจเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชจเซ‹ เช…เชจเช‚เชค เชฒเซ‚เชช เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡.

เชนเชตเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช–เซ‹เชฒเซ€เช เช…เชจเซ‡ เช†เชชเชฃเชพ เชฌเซ‹เชŸเชจเซ‡ เชชเชนเซ‡เชฒเซ‹ เช†เชฆเซ‡เชถ เชฒเช–เซ€เช /hi.

R เชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชฒเช–เชตเซเช‚ (เชญเชพเช— 2): เชฌเซ‹เชŸเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช…เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชซเชฟเชฒเซเชŸเชฐ เช‰เชฎเซ‡เชฐเชตเซเช‚

เชนเชตเซ‡ เช†เชชเชฃเซ‹ เชฌเซ‹เชŸ เช†เชฆเซ‡เชถ เชธเชฎเชœเซ‡ เช›เซ‡ /hi, เช…เชจเซ‡ เช…เชฎเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชญเชฟเชตเชพเชฆเชจ เช•เชฐเชตเซเช‚ เชคเซ‡ เชœเชพเชฃเซ‡ เช›เซ‡.

เชฏเซ‹เชœเชจเชพเช•เซ€เชฏ เชฐเซ€เชคเซ‡, เช†เชตเชพ เชธเชฐเชณ เชฌเซ‹เชŸ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เชฆเชฐเซเชถเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡.

R เชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชฒเช–เชตเซเช‚ (เชญเชพเช— 2): เชฌเซ‹เชŸเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช…เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชซเชฟเชฒเซเชŸเชฐ เช‰เชฎเซ‡เชฐเชตเซเช‚

  1. เชตเชฐเซเช—เชจเซ‹ เชฆเชพเช–เชฒเซ‹ เชฌเชจเชพเชตเซ‹ Updater;
  2. เช…เชฎเซ‡ เชชเชฆเซเชงเชคเชฟเช“ เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เชเชŸเชฒเซ‡ เช•เซ‡. เช•เชพเชฐเซเชฏเซ‹ เช•เซ‡ เชœเซ‡ เช…เชฎเชพเชฐเซ‹ เชฌเซ‹เชŸ เช•เชฐเชถเซ‡. เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เช† เชเช• เช•เชพเชฐเซเชฏ เช›เซ‡ say_hello(). เชซเช‚เช•เซเชถเชจ เช•เซ‡ เชœเซ‡เชจเซ‹ เชคเชฎเซ‡ เชฌเซ‹เชŸ เชชเชฆเซเชงเชคเชฟ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‹ เชคเซ‡เชฎเชพเช‚ เชฌเซ‡ เชœเชฐเซ‚เชฐเซ€ เชฆเชฒเซ€เชฒเซ‹ เชนเซ‹เชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡ - เชฌเซ‹เชŸ ะธ เชธเซเชงเชพเชฐเซ‹, เช…เชจเซ‡ เชเช• เชตเซˆเช•เชฒเซเชชเชฟเช• - เชฆเชฒเซ€เชฒเซ‹. เชฆเชฒเซ€เชฒ เชฌเซ‹เชŸ, เช† เชคเชฎเชพเชฐเซ‹ เชฌเซ‹เชŸ เช›เซ‡, เชคเซ‡เชจเซ€ เชฎเชฆเชฆเชฅเซ€ เชคเชฎเซ‡ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซ€ เชถเช•เซ‹ เช›เซ‹, เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชฅเชตเชพ เชฌเซ‹เชŸ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เชชเชฆเซเชงเชคเชฟเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชฆเชฒเซ€เชฒ เชธเซเชงเชพเชฐเซ‹ เช† เชคเซ‡ เช›เซ‡ เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชชเชพเชธเซ‡เชฅเซ€ เชฌเซ‹เชŸเชจเซ‡ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเช‚ เช›เซ‡, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช†เชชเชฃเซ‡ เชชเซเชฐเชฅเชฎ เชฒเซ‡เช–เชฎเชพเช‚ เชœเซ‡ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡ 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()

เช‰เชชเชฐเซ‹เช•เซเชค เช•เซ‹เชก เช‰เชฆเชพเชนเชฐเชฃ เชšเชฒเชพเชตเซ‹, 'เชฏเซ‹เชฐ เชฌเซ‹เชŸ เชŸเซ‹เช•เชจ' เชจเซ‡ เชฌเชฆเชฒเซเชฏเชพ เชชเช›เซ€, เชคเชฎเชจเซ‡ เชฌเซ‹เชŸ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‡เชฒ เชตเชพเชธเซเชคเชตเชฟเช• เชŸเซ‹เช•เชจ เชธเชพเชฅเซ‡ เชฌเซ‹เชŸเชซเซ‡เชงเชฐ (เชฎเซ‡เช‚ เชฎเชพเช‚ เชฌเซ‹เชŸ เชฌเชจเชพเชตเชตเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชชเซเชฐเชฅเชฎ เชฒเซ‡เช–).

เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชชเชนเซ‡เชฒเชพ เชธเซ‚เชšเชฟเชฌเชฆเซเชง เชถเซเชญเซ‡เชšเซเช›เชพ เชถเชฌเซเชฆเซ‹ เชงเชฐเชพเชตเชคเชพ เชฌเซ‹เชŸเชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช:
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 เช…เชจเซ‡ เชชเชฆเชพเชฐเซเชฅ เชฎเซ‡เชธเซ‡เชœเชซเชฟเชฒเซเชŸเชฐเซเชธ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชซเชฟเชฒเซเชŸเชฐเซเชธเชจเซ‹ เชธเชฎเซ‚เชน เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช›เซ‡ เชœเซ‡เชจเซ‹ เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

  • เชฌเชงเชพ โ€” เชฌเชงเชพ เชธเช‚เชฆเซ‡เชถเชพ
  • เชŸเซ‡เช•เซเชธเซเชŸ - เชŸเซ‡เช•เซเชธเซเชŸ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เช†เชฆเซ‡เชถ - เช†เชฆเซ‡เชถเซ‹, เชเชŸเชฒเซ‡ เช•เซ‡ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เชฅเชคเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ /
  • เชœเชตเชพเชฌ - เชธเช‚เชฆเซ‡เชถเชพเช“ เช•เซ‡ เชœเซ‡ เชฌเซ€เชœเชพ เชธเช‚เชฆเซ‡เชถเชจเซ‹ เชœเชตเชพเชฌ เช›เซ‡
  • เช“เชกเชฟเชฏเซ‹ โ€” เช“เชกเชฟเชฏเซ‹ เชซเชพเชˆเชฒ เชงเชฐเชพเชตเชคเชพ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชฆเชธเซเชคเชพเชตเซ‡เชœ โ€” เชฎเซ‹เช•เชฒเซ‡เชฒเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœ เชธเชพเชฅเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชซเซ‹เชŸเซ‹ - เชฎเซ‹เช•เชฒเซ‡เชฒ เช›เชฌเซ€เช“ เชธเชพเชฅเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชธเซเชŸเซ€เช•เชฐ - เชฎเซ‹เช•เชฒเซ‡เชฒ เชธเซเชŸเซ€เช•เชฐ เชธเชพเชฅเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพ
  • เชตเชฟเชกเชฟเช“ โ€” เชตเชฟเชกเชฟเช“ เชธเชพเชฅเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพ
  • เชตเซ‰เช‡เชธ - เชตเซ‰เช‡เชธ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชธเช‚เชชเชฐเซเช• โ€” เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชธเชพเชฎเช—เซเชฐเซ€ เชงเชฐเชพเชตเชคเชพ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชธเซเชฅเชพเชจ โ€” เชญเซŒเช—เซ‹เชฒเชฟเช• เชธเซเชฅเชพเชจ เชธเชพเชฅเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชธเซเชฅเชณ - เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเซ‡เชฒเชพ เชธเช‚เชฆเซ‡เชถเชพเช“
  • เชฐเชฎเชค โ€” เชฐเชฎเชคเซ‹

เชœเซ‹ เชคเชฎเซ‡ เชเช• เชนเซ‡เชจเซเชกเชฒเชฐเชฎเชพเช‚ เช•เซ‡เชŸเชฒเชพเช• เชซเชฟเชฒเซเชŸเชฐเซเชธเชจเซ‡ เชœเซ‹เชกเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เชคเซ‹ เชซเช•เซเชค เชธเชพเช‡เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ | - เชฒเซ‹เชœเชฟเช•เชฒ เชคเชฐเซ€เช•เซ‡ เช…เชฅเชตเชพ, เช…เชจเซ‡ เชธเชนเซ€ เช•เชฐเซ‹ & เชฒเซ‹เชœเชฟเช•เชฒ เชคเชฐเซ€เช•เซ‡ ะ˜. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชคเชฎเซ‡ เช‡เชšเซเช›เซ‹ เช›เซ‹ เช•เซ‡ เชฌเซ‹เชŸ เชœเซเชฏเชพเชฐเซ‡ เชตเชฟเชกเชฟเชฏเซ‹, เช›เชฌเซ€ เช…เชฅเชตเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœ เชฎเซ‡เชณเชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชœ เชชเชฆเซเชงเชคเชฟเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‡, เชคเซ‹ เชธเช‚เชฆเซ‡เชถ เชนเซ‡เชจเซเชกเชฒเชฐ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹:

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

เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชธเชพเชฅเซ‡ เช†เชฆเซ‡เชถเซ‹ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡

เช…เชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ เช•เชฎเชพเชจเซเชก เชถเซเช‚ เช›เซ‡, เชคเซ‡เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซ‹ เช…เชจเซ‡ เช‡เชšเซเช›เชฟเชค เช†เชฆเซ‡เชถเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ‹เชŸเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเชตเซเช‚. เชชเชฐเช‚เชคเซ เช•เซ‡เชŸเชฒเชพเช• เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚, เช†เชฆเซ‡เชถเชจเชพ เชจเชพเชฎ เช‰เชชเชฐเชพเช‚เชค, เช†เชชเชฃเซ‡ เชคเซ‡เชจเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชกเซ‡เชŸเชพ เชชเชพเชธ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชจเซ€เชšเซ‡ เชเช• เชฌเซ‹เชŸเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡ เชœเซ‡ เช†เชชเซ‡เชฒ เชคเชพเชฐเซ€เช– เช…เชจเซ‡ เชฆเซ‡เชถเชจเซ‡ เชœเซ‹เชคเชพเช‚, เช‰เชคเซเชชเชพเชฆเชจ เช•เซ‡เชฒเซ‡เชจเซเชกเชฐเชฎเชพเช‚เชฅเซ€ เชคเชฎเชจเซ‡ เชฆเชฟเชตเชธเชจเซ‹ เชชเซเชฐเช•เชพเชฐ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡.

เชจเซ€เชšเซ‡เชจเซ‹ เชฌเซ‹เชŸ เช‰เชคเซเชชเชพเชฆเชจ เช•เซ‡เชฒเซ‡เชจเซเชกเชฐ 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(), เช…เชจเซ‡ เชชเชฆเซเชงเชคเชฟ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชœเชฐเซ‚เชฐเซ€ เชฆเชฒเซ€เชฒเซ‹ เช‰เชชเชฐเชพเช‚เชค เชฌเซ‹เชŸ, เชธเซเชงเชพเชฐเซ‹ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฌเชจเชพเชตเซ‹ - เชฆเชฒเซ€เชฒเซ‹. เช† เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชชเชฆเซเชงเชคเชฟ เช เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‡ เชธเซเชตเซ€เช•เชพเชฐเชถเซ‡ เช•เซ‡ เชœเซ‡ เชคเชฎเซ‡ เช†เชฆเซ‡เชถเชจเชพ เชจเชพเชฎ เชชเช›เซ€ เชฌเซ‹เชŸเชจเซ‡ เชชเชธเชพเชฐ เช•เชฐเชถเซ‹. เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‡ เชธเซเชชเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เช…เชฒเช— เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡; เชคเซ‡เช“ เชŸเซ‡เช•เซเชธเซเชŸ เชตเซ‡เช•เซเชŸเชฐ เชคเชฐเซ€เช•เซ‡ เชชเชฆเซเชงเชคเชฟ เชชเชฐ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เชฌเซ‹เชŸเชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเซ€เช เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ€เช.

R เชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชฌเซ‹เชŸ เชฒเช–เชตเซเช‚ (เชญเชพเช— 2): เชฌเซ‹เชŸเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชธเชชเซ‹เชฐเซเชŸ เช…เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชซเชฟเชฒเซเชŸเชฐ เช‰เชฎเซ‡เชฐเชตเซเช‚

เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟเชฎเชพเช‚ เชฌเซ‹เชŸ เชšเชฒเชพเชตเซ‹

เช†เชชเชฃเซ‡ เชœเซ‡ เช›เซ‡เชฒเซเชฒเซเช‚ เชชเช—เชฒเซเช‚ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟเชฎเชพเช‚ เชฌเซ‹เชŸเชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡.

เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡ เชตเชฐเซเชฃเชตเซ‡เชฒ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเซ‹ เช…เชจเซเชธเชฐเซ‹:

  1. เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ R เชธเชพเชฅเซ‡เชจเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚ เชฌเซ‹เชŸ เช•เซ‹เชก เชธเชพเชšเชตเซ‹. RStudio เชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เช† เชฎเซ‡เชจเซ เชฆเซเชตเชพเชฐเชพ เชฅเชพเชฏ เช›เซ‡. เชซเชพเช‡เชฒ, เชŸเซ€เชฎ เชคเชฐเซ€เช•เซ‡ เชœเชฎเชพ เช•เชฐเชตเซ ....
  2. เชฌเชฟเชจ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชชเชพเชฅ เช‰เชฎเซ‡เชฐเซ‹, เชœเซ‡ เชฌเชฆเชฒเชพเชฎเชพเช‚ เชคเซ‡ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชคเชฎเซ‡ R เชญเชพเชทเชพ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เช›เซ‡, เชชเชพเชฅ เชตเซ‡เชฐเซ€เชเชฌเชฒเชฎเชพเช‚, เชธเซ‚เชšเชจเชพเช“ เช…เชนเซ€เช‚.
  3. เชจเชฟเชฏเชฎเชฟเชค เชŸเซ‡เช•เซเชธเซเชŸ เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ‹ เชœเซ‡เชฎเชพเช‚ 1 เชฒเซ€เชŸเซ€ เชฒเช–เซ‹: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R. เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡ C:UsersAlseyDocumentsmy_bot.R เชคเชฎเชพเชฐเซ€ เชฌเซ‹เชŸ เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ‹ เชฎเชพเชฐเซเช— เชฒเช–เซ‹. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชคเซ‡ เชฎเชนเชคเซเชตเชจเซเช‚ เช›เซ‡ เช•เซ‡ เชฐเชธเซเชคเชพเชฎเชพเช‚ เช•เซ‹เชˆ เชธเชฟเชฐเชฟเชฒเชฟเช• เช…เช•เซเชทเชฐเซ‹ เช…เชฅเชตเชพ เชœเช—เซเชฏเชพเช“ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เช† เชฌเซ‹เชŸ เชšเชฒเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชธเชฎเชธเซเชฏเชพ เชŠเชญเซ€ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชจเซ‡ เชธเชพเชšเชตเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจเชจเซ‡ เชฌเชฆเชฒเซ‹ TXT เชชเชฐ เชฌเซ‡เชŸ.
  4. เชตเชฟเชจเซเชกเซ‹เช เชŸเชพเชธเซเช• เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ เช–เซ‹เชฒเซ‹, เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเซ€ เชฐเซ€เชคเซ‹ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชˆเชชเชฃ เชซเซ‹เชฒเซเชกเชฐ เช–เซ‹เชฒเซ‹ เช…เชจเซ‡ เชธเชฐเชจเชพเชฎเซเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ‹ %windir%system32taskschd.msc /s. เช…เชจเซเชฏ เชฒเซ‹เชจเซเชš เชชเชฆเซเชงเชคเชฟเช“ เชถเซ‹เชงเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชนเซ€เช‚.
  5. เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชจเชพ เช‰เชชเชฐเชจเชพ เชœเชฎเชฃเชพ เชฎเซ‡เชจเซ‚เชฎเชพเช‚, "เช•เชพเชฐเซเชฏ เชฌเชจเชพเชตเซ‹..." เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹.
  6. "เชธเชพเชฎเชพเชจเซเชฏ" เชŸเซ…เชฌ เชชเชฐ, เชคเชฎเชพเชฐเชพ เช•เชพเชฐเซเชฏเชจเซ‡ เช•เชธเซเชŸเชฎ เชจเชพเชฎ เช†เชชเซ‹ เช…เชจเซ‡ เชธเซเชตเชฟเชšเชจเซ‡ "เชฌเชงเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เชšเชฒเชพเชตเซ‹" เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชธเซเชตเชฟเชš เช•เชฐเซ‹.
  7. "เช•เซเชฐเชฟเชฏเชพเช“" เชŸเซ…เชฌ เชชเชฐ เชœเชพเช“, "เชฌเชจเชพเชตเซ‹" เช•เซเชฒเชฟเช• เช•เชฐเซ‹. "เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช…เชฅเชตเชพ เชธเซเช•เซเชฐเชฟเชชเซเชŸ" เชซเซ€เชฒเซเชกเชฎเชพเช‚, "เชฌเซเชฐเชพเช‰เช เช•เชฐเซ‹" เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹, เชฌเซ€เชœเชพ เชชเช—เชฒเชพเชฎเชพเช‚ เชฌเชจเชพเชตเซ‡เชฒ เชเช• เชถเซ‹เชงเซ‹ เชฌเซ‡เชŸ เชซเชพเช‡เชฒ เช…เชจเซ‡ เช เซ€เช• เช•เซเชฒเชฟเช• เช•เชฐเซ‹.
  8. เช เซ€เช• เช•เซเชฒเชฟเช• เช•เชฐเซ‹ เช…เชจเซ‡, เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชพเชฐเชพ เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชเช•เชพเช‰เชจเซเชŸ เชฎเชพเชŸเซ‡ เชชเชพเชธเชตเชฐเซเชก เชฆเชพเช–เชฒ เช•เชฐเซ‹.
  9. เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐเชฎเชพเช‚ เชฌเชจเชพเชตเซ‡เชฒ เช•เชพเชฐเซเชฏ เชถเซ‹เชงเซ‹, เชคเซ‡เชจเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‹ เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชœเชฎเชฃเชพ เช–เซ‚เชฃเชพเชฎเชพเช‚ "เชฐเชจ" เชฌเชŸเชจเชจเซ‡ เช•เซเชฒเชฟเช• เช•เชฐเซ‹.

เช…เชฎเชพเชฐเซ‹ เชฌเซ‹เชŸ เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟเชฎเชพเช‚ เชšเชพเชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเซ‡ เช•เชพเชฐเซเชฏ เชฌเช‚เชง เชจ เช•เชฐเซ‹, เช…เชฅเชตเชพ เชคเชฎเชพเชฐเชพ PC เช…เชฅเชตเชพ เชธเชฐเซเชตเชฐเชจเซ‡ เชฌเช‚เชง เชจ เช•เชฐเซ‹ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡.

เชจเชฟเชทเซเช•เชฐเซเชท

เช† เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เชเช• เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซเชตเชฟเชงเชพเชฏเซเช•เซเชค เชฌเซ‹เชŸ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ‹ เชคเซ‡ เชถเซ‹เชงเซ€ เช•เชพเชขเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡ เชซเช•เซเชค เชธเช‚เชฆเซ‡เชถเชพเช“ เชœ เชฎเซ‹เช•เชฒเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€, เชชเชฃ เช†เชตเชจเชพเชฐเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เช…เชจเซ‡ เช†เชฆเซ‡เชถเซ‹เชจเซ‹ เชœเชตเชพเชฌ เชชเชฃ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. เชฎเซ‡เชณเชตเซ‡เชฒ เชœเซเชžเชพเชจ เชคเชฎเชพเชฐเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡.

เช†เช—เชณเชจเซ‹ เชฒเซ‡เช– เชตเชงเซ เช…เชจเซเช•เซ‚เชณ เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชฌเซ‹เชŸเชฎเชพเช‚ เช•เซ€เชฌเซ‹เชฐเซเชก เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช‰เชฎเซ‡เชฐเชตเซเช‚ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเชถเซ‡.

เชฎเชพเชฐเชพ เชชเชฐ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ ะธ เชฏเซ เชŸเซเชฏเซเชฌ เชšเซ‡เชจเชฒเซ‹

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹