เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 2): เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš bot

ะ’ เบเบฒเบ™เบžเบดเบกเป€เบœเบตเบเปเบœเปˆเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ„เบดเบ”เบญเบญเบเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡ bot, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Bot เปเบฅเบฐเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป‚เบ”เบเปƒเบŠเป‰เบกเบฑเบ™.

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบทเบšเบ•เปเปˆเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰, เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบญเปˆเบฒเบ™ เบชเปˆเบงเบ™เบ—เปเบฒเบญเบดเบ”.

เป€เบงเบฅเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ„เบดเบ”เบงเบดเบ—เบตเบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบน bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฑเบšเบกเบฑเบ™, เปเบฅเบฐเบเบฑเบ‡เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™. Updater.

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบšเบปเบ”เบ„เบงเบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ‚เบฝเบ™ bots เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ, เบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐ, เบญเบตเบ‡เบ•เบฒเบกเบงเบฑเบ™เบ—เบตเปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ›เบฐเป€เบ—เบ”, เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบกเบทเป‰เปƒเบ™เบ›เบฐเป€เบ—เบ”เปƒเบ”เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบ—เป‰เบฒเบเบญเบฒเบ—เบดเบ”เบซเบผเบทเบกเบทเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบ›เบฐเบ•เบดเบ—เบดเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เปเบ•เปˆ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เบŠเบธเบ” telegram.bot เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡.

เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 2): เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš bot

เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบŠเบธเบ” "เบ‚เบฝเบ™เป‚เบ—เบฅเบฐเป€เบฅเบ bot เปƒเบ™ R"

  1. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ bot เปเบฅเบฐเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™ telegram
  2. เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบชเปˆ bot

เป€เบ™เบทเป‰เบญเปƒเบ™

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเบ™เปƒเบˆเปƒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ‚เปเป‰เบกเบนเบ™, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ‚เป‰เบญเบ telegram ะธ youtube เบŠเปˆเบญเบ‡. เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเปเบกเปˆเบ™เบญเบธเบ—เบดเบ”เบ•เบปเบ™เป€เบžเบทเปˆเบญเบžเบฒเบชเบฒ R.

  1. เบซเป‰เบญเบ‡เบฎเบฝเบ™เบญเบฑเบšเป€เบ”เบ”
  2. Handlers - handlers
  3. เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบเบฑเบš bot, เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡
  4. เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบ„เบงเบฒเบก เปเบฅเบฐเบ•เบปเบงเบเบญเบ‡
  5. เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต
  6. เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ bot เปƒเบ™เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡
  7. เบชเบฐเบซเบฅเบธเบš

เบซเป‰เบญเบ‡เบฎเบฝเบ™เบญเบฑเบšเป€เบ”เบ”

Updater เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™เบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒ telegram bot, เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบฎเบฝเบ™เบžเบฒเบเปƒเบ•เป‰ hood เป„เบ”เป‰ Dispetcher. เบเบฒเบ™โ€‹เบกเบญเบšโ€‹เบซเบกเบฒเบโ€‹เบซเป‰เบญเบ‡โ€‹ Updater เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบฒเบ bot (เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰ getUpdates()), เปเบฅเบฐเป‚เบญเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เบทเปˆเบกเบญเบตเบ Dispetcher.

เปƒเบ™เบ—เบตเปˆเบชเบธเบ” Dispetcher เบกเบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, i.e. เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Handler.

Handlers - handlers

เบ”เป‰เบงเบเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบžเบตเปˆเบกเปƒเบชเปˆ Dispetcher เบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ bot เบเบฑเบšเป€เบซเบ”เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†. เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ telegram.bot เบ›เบฐเป€เบžเบ”เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก:

  • MessageHandler โ€” เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก
  • CommandHandler - เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡
  • CallbackQueryHandler โ€” เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเปเบ›เป‰เบ™เบžเบดเบกเบ—เบตเปˆเบชเบปเปˆเบ‡เบกเบฒเบˆเบฒเบ Inline
  • ErrorHandler โ€” เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบกเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบˆเบฒเบเบšเบฑเบญเบ”

เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบเบฑเบš bot, เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป€เบ„เบตเบเปƒเบŠเป‰ bots เบกเบฒเบเปˆเบญเบ™เปเบฅเบฐเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบซเบเบฑเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เป„เบ›เบซเบฒ bots เบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป‚เบ”เบเปƒเบŠเป‰ slash เป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒ. / เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เปเบฒเบซเบ™เป‰เบฒ.

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‡เปˆเบฒเบเป†, i.e. เปƒเบซเป‰เบชเบญเบ™ bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบชเบฐเบšเบฒเบเบ”เบตเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ /hi.

เบฅเบฐเบซเบฑเบ” 1: เบเบฒเบ™เบชเบญเบ™ bot เป€เบžเบทเปˆเบญเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบชเบฐเบšเบฒเบเบ”เบต

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 BOT TOKEN' เบ”เป‰เบงเบ token เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡ bot เบœเปˆเบฒเบ™. BotFather (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ bot เปƒเบ™ เบšเบปเบ”เบ„เบงเบฒเบกเบ—เปเบฒเบญเบดเบ”).

เบงเบดเบ—เบตเบเบฒเบ™ start_polling() เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™ Updater, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ loop เบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบˆเบฒเบ bot.

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบ›เบตเบ” Telegram เปเบฅเบฐเบ‚เบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เปƒเบซเป‰เบเบฑเบš bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ /hi.

เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 2): เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš bot

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เปเบฒเบชเบฑเปˆเบ‡ /hi, เปเบฅเบฐเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบฑเบเบ—เบฒเบเบžเบงเบเป€เบฎเบปเบฒ.

Schematically, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡ bot เบ‡เปˆเบฒเบเบ”เบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰.

เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 2): เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš bot

  1. เบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™ Updater;
  2. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบงเบดเบ—เบตเบเบฒเบ™, i.e. เบซเบ™เป‰เบฒเบ—เบตเปˆ bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ say_hello(). เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบˆเบฐเปƒเบŠเป‰เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™ bot เบ•เป‰เบญเบ‡เบกเบตเบชเบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ - bot ะธ เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ - เป‚เบ•เป‰เบ–เบฝเบ‡. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ bot, เบ™เบตเป‰เปเบกเปˆเบ™ bot เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบญเบšเบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบก, เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก, เบซเบผเบทเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบกเบตเปƒเบซเป‰เบเบฑเบš bot. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ bot เป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบเบœเบนเป‰เปƒเบŠเป‰, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เปเบฒเบญเบดเบ”เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ getUpdates(). เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ เป‚เบ•เป‰เบ–เบฝเบ‡ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบชเบปเปˆเบ‡เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบžเป‰เบญเบกเบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰เป€เบฅเบฑเบเบ™เป‰เบญเบเบ•เปเปˆเบกเบฒ;
  3. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™, i.e. เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบšเบฒเบ‡เบเบฒเบ™เบเบฐเบ—เปเบฒเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เปเบกเปˆเบ™เบ•เบปเบงเบเบฐเบ•เบธเป‰เบ™, เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ bot. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ•เบปเบงเบเบฐเบ•เบธเป‰เบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเปเบฒเบฅเบฑเบ‡เบชเบปเปˆเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ /hi, เปเบฅเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ—เบตเบกเบ‡เบฒเบ™ hi_hendler <- CommandHandler('hi', say_hello). เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เปเบฒเบญเบดเบ” CommandHandler() เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบ„เปเบฒเบชเบฑเปˆเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ hi, เบ—เบตเปˆ bot เบˆเบฐเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡. เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเบชเบญเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบงเบดเบ—เบตเบเบฒเบ™ bot, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™ say_hello, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ argument เบ—เปเบฒเบญเบดเบ”;
  4. เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบชเปˆเบ•เบปเบงเบชเบปเปˆเบ‡เบ‚เบญเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ Updater. เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เป„เบ”เป‰เบซเบผเบฒเบเบงเบดเบ—เบต; เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ‚เป‰เบญเบเปƒเบŠเป‰เปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”, เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ +, i.e. updater <- updater + hi_hendler. เบ”เบฝเบงเบเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ add_handler(), เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™ Dispatcher, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹: updater$dispatcher$add_handler();
  5. เป€เบ›เบตเบ”เปƒเบŠเป‰ bot เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ start_polling().

เบ•เบปเบงเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบ„เบงเบฒเบก เปเบฅเบฐเบ•เบปเบงเบเบญเบ‡

เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เป„เบ›เบซเบฒ bot, เปเบ•เปˆเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ bot เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเบชเบฑเปˆเบ‡, เปเบ•เปˆเบเบฑเบ‡เบเบฑเบšเบšเบฒเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ›เบปเบเบเบฐเบ•เบด. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก โˆ’ MessageHandler.

เบ—เปเบฒเบกเบฐเบ”เบฒ MessageHandler เบˆเบฐเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบกเบฑเบเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบเบญเบ‡. เปƒเบซเป‰เบชเบญเบ™ bot เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบชเบฐเบšเบฒเบเบ”เบตเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ /hi, เปเบ•เปˆเป€เบกเบทเปˆเบญเปƒเบ”เบเปเปˆเบ•เบฒเบกเบ„เปเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ bot: เบชเบฐเบšเบฒเบเบ”เบต, เบชเบฐเบšเบฒเบเบ”เบต, salute, hai, bonjour.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบ‚เบฝเบ™เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆ, เป€เบžเบฒเบฐเบงเปˆเบฒ ... เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆ bot เบ—เบฑเบเบ—เบฒเบเบžเบงเบเป€เบฎเบปเบฒเปเบฅเป‰เบง. เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

เบฅเบฐเบซเบฑเบ” 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 BOT TOKEN' เบ”เป‰เบงเบ token เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡ bot เบœเปˆเบฒเบ™. BotFather (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ bot เปƒเบ™ เบšเบปเบ”เบ„เบงเบฒเบกเบ—เปเบฒเบญเบดเบ”).

เบ”เบฝเบงเบ™เบตเป‰, เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบซเบผเบฒเบ bot เบ—เบตเปˆเบกเบต เบ„เบณ เบ—เบฑเบเบ—เบฒเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเปˆเบญเบ™ เปœเป‰เบฒ เบ™เบตเป‰:
เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 2): เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš bot

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเปˆเบญเบ™เบญเบทเปˆเบ™เปเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบชเบญเบ™ bot เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปƒเบซเป‰เป€เบงเบปเป‰เบฒเบชเบฐเบšเบฒเบเบ”เบต, เปเบ•เปˆเป€เบžเบทเปˆเบญเบ•เบญเบšเบ„เบณเบ—เบฑเบเบ—เบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ เบ•เบญเบš_to_message_id, เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™ sendMessage(), เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบญเบ™ id เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบš id เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบŠเบฑเปˆเบ™เบ™เบตเป‰: update$message$message_id.

เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบเบญเบ‡เปƒเบชเปˆ bot เป‚เบ”เบเปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ BaseFilter():

# ัะพะทะดะฐั‘ะผ ั„ะธะปัŒั‚ั€ั‹
MessageFilters$hi <- BaseFilter( 

  # ะฐะฝะพะฝะธะผะฝะฐั ั„ะธะปัŒั‚ั€ัƒัŽั‰ะฐั ั„ัƒะฝะบั†ะธั
  function(message) {

    # ะฟั€ะพะฒะตั€ัะตะผ, ะฒัั‚ั€ะตั‡ะฐะตั‚ัั ะปะธ ะฒ ั‚ะตะบัั‚ะต ัะพะพะฑั‰ะตะฝะธั ัะปะพะฒะฐ ะฟั€ะธะฒะตั‚ัั‚ะฒะธั
    grepl(x           = message$text, 
          pattern     = 'ะฟั€ะธะฒะตั‚|ะทะดั€ะฐะฒัั‚ะฒัƒะน|ัะฐะปัŽั‚|ั…ะฐะน|ะฑะพะฝะถัƒั€',
          ignore.case = TRUE)
  }

)

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™, เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบงเบฑเบ”เบ–เบธ เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก, เป€เบŠเบดเปˆเบ‡เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŠเบธเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบฅเป‰เบง. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบเบฑเบšเบงเบฑเบ”เบ–เบธ เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบญเบปเบ‡เบ›เบฐเบเบญเบš hi, เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบเบญเบ‡เปƒเบซเบกเปˆ.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบ BaseFilter() เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบœเปˆเบฒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบฎเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปเบฅเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™ TRUE เบซเบผเบท เบœเบดเบ”. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ‚เบฝเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆ, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™ grepl() เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เปเป‰เบ„เบงเบฒเบก เปเบฅเบฐเบ–เป‰เบฒเบกเบฑเบ™เบเบปเบ‡เบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ›เบปเบเบเบฐเบ•เบด ะฟั€ะธะฒะตั‚|ะทะดั€ะฐะฒัั‚ะฒัƒะน|ัะฐะปัŽั‚|ั…ะฐะน|ะฑะพะฝะถัƒั€ เบเบฑเบšเบ„เบทเบ™ TRUE.

เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi). เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เปเบฒเบญเบดเบ” MessageHandler() เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒ handler, เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ MessageFilters$hi.

เบ”เบต, เปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ hi_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เบฝเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เปƒเบ™เบŠเบธเบ” telegram.bot เปเบฅเบฐเบงเบฑเบ”เบ–เบธ เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก เบกเบตเบŠเบธเบ”เบ•เบปเบงเบเบญเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เป„เบ”เป‰เปเบฅเป‰เบง:

  • เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” โ€” เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹
  • text โ€” เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹
  • เบ„เปเบฒเบชเบฑเปˆเบ‡ - เบ„เปเบฒเบชเบฑเปˆเบ‡, i.e. เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ /
  • เบ•เบญเบšเบเบฑเบš โ€” เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เบ•เบญเบšเบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบญเบทเปˆเบ™
  • เบชเบฝเบ‡ โ€” เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบชเบฝเบ‡โ€‹
  • เป€เบญเบเบฐเบชเบฒเบ™ โ€” เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡
  • เบฎเบนเบšเบžเบฒเบš - เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเบปเปˆเบ‡
  • เบชเบฐเบ•เบดเบเป€เบเบต โ€” เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบชเบฐเบ•เบดเบเป€เบเบตเบ—เบตเปˆเบชเบปเปˆเบ‡
  • เบงเบดเบ”เบตเป‚เบญ โ€” เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบงเบดเบ”เบตเป‚เบญ
  • เบชเบฝเบ‡ - เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฝเบ‡
  • เบ•เบดเบ”โ€‹เบ•เปเปˆ - เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™ telegram เบ‚เบญเบ‡โ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹
  • เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ โ€” เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบžเบนเบกเบชเบฒเบ”
  • เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ โ€” เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบปเปˆเบ‡เบ•เปเปˆ
  • เป€เบเบก โ€” เป€เบเบก

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบปเบกเบ—เบปเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ | - เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™ OR, เปเบฅเบฐโ€‹เป€เบŠเบฑเบ™โ€‹ & เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™ ะ˜. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰ bot เป‚เบ—เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เป€เบกเบทเปˆเบญเบกเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบงเบดเบ”เบตเป‚เบญ, เบฎเบนเบšเบžเบฒเบšเบซเบผเบทเป€เบญเบเบฐเบชเบฒเบ™, เปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก:

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

เป€เบžเบตเปˆเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต

เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เปเบฅเป‰เบงเบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบซเบเบฑเบ‡, เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบžเบงเบเบกเบฑเบ™, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰ bot เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เปเบ•เปˆเปƒเบ™เบšเบฒเบ‡เบเปเบฅเบฐเบ™เบต, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบŠเบทเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบœเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™.

เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ bot เบ—เบตเปˆ, เปƒเบซเป‰เบงเบฑเบ™เบ—เบตเปเบฅเบฐเบ›เบฐเป€เบ—เบ”, เบชเบปเปˆเบ‡เบ„เบทเบ™เบ›เบฐเป€เบžเบ”เบงเบฑเบ™เปƒเบซเป‰เบ—เปˆเบฒเบ™เบˆเบฒเบเบ›เบฐเบ•เบดเบ—เบดเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”.

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

เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ—เบ™ 'Your BOT TOKEN' เบ”เป‰เบงเบ token เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡ bot เบœเปˆเบฒเบ™. BotFather (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ bot เปƒเบ™ เบšเบปเบ”เบ„เบงเบฒเบกเบ—เปเบฒเบญเบดเบ”).

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ bot เบ—เบตเปˆเบกเบตเบงเบดเบ—เบตเบ”เบฝเบงเปƒเบ™เบชเบฒเบ™เบซเบ™เบนเบ‚เบญเบ‡เบกเบฑเบ™ check_date, เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒเป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™.

เปเบ•เปˆ, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบŠเบทเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡, เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบชเปˆเบชเบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต, เบฅเบฐเบซเบฑเบ”เบ›เบฐเป€เบ—เบ”เปเบฅเบฐเบงเบฑเบ™เบ—เบต. เบ•เปเปˆเป„เบ›, bot เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบทเป‰เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เปƒเบ™เบ›เบฐเป€เบ—เบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™เบ—เป‰เบฒเบเบญเบฒเบ—เบดเบ”, เบกเบทเป‰เบชเบฑเป‰เบ™, เบซเบผเบทเบกเบทเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบ›เบฐเบ•เบดเบ—เบดเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™.

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเบฎเบฑเบšเป€เบญเบปเบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบžเป‰เบญเบกเบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡, เปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ pass_args = TRUE เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆ CommandHandler(), เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบงเบดเบ—เบตเบเบฒเบ™, เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ bot, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ เบชเป‰เบฒเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบ™เบถเปˆเบ‡ - เป‚เบ•เป‰เบ–เบฝเบ‡. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰เบˆเบฐเบเบญเบกเบฎเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบปเปˆเบ‡เบเบฑเบš bot เบซเบผเบฑเบ‡เบˆเบฒเบเบŠเบทเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ•เป‰เบญเบ‡เบ–เบทเบเปเบเบเบญเบญเบเป‚เบ”เบเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡; เบžเบงเบเบกเบฑเบ™เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบฑเบ™ vector เบ‚เปเป‰เบ„เบงเบฒเบก.

เปƒเบซเป‰เป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเบ—เบปเบ”เบชเบญเบš bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 2): เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš bot

เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ bot เปƒเบ™เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบชเปเบฒเป€เบฅเบฑเบ”เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบง bot เปƒเบ™เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก algorithm เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

  1. เบšเบฑเบ™เบ—เบถเบเบฅเบฐเบซเบฑเบ” bot เบเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™ R. เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ RStudio, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบœเปˆเบฒเบ™เป€เบกเบ™เบน เป€เบญเบเบฐเบชเบฒเบ™, เบ—เบตเบกเบ‡เบฒเบ™ เบšเบฑเบ™เบ—เบถเบเป€เบ›เบฑเบ™ ....
  2. เป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป‚เบŸเป€เบ”เบต bin, เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบฒเบชเบฒ R, เป„เบ›เบซเบฒเบ•เบปเบงเปเบ› Path, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ. เบ—เบตเปˆเบ™เบตเป‰.
  3. เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบ‚เปเป‰เบ„เบงเบฒเบกเบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเบ‚เบฝเบ™ 1 เปเบ–เบง: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R. เปเบ—เบ™โ€‹เบ—เบตเปˆ C:UsersAlseyDocumentsmy_bot.R เบ‚เบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒ bot script เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™ Cyrillic เบซเบผเบทเบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบ•เบฒเบกเบ—เบฒเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒ เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒเปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™ bot. เบšเบฑเบ™เบ—เบถเบเบกเบฑเบ™, เปเบฅเบฐเบ›เปˆเบฝเบ™เปเบ—เบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™เบ”เป‰เบงเบ txt เบชเบธเบ” bat.
  4. เป€เบ›เบตเบ” Windows Task Scheduler, เบกเบตเบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰, เป€เบ›เบตเบ”เป‚เบŸเบ™เป€เบ”เบตเปƒเบ”เบ™เบถเปˆเบ‡เปเบฅเบฐเปƒเบชเปˆเบ—เบตเปˆเบขเบนเปˆ. %windir%system32taskschd.msc /s. เบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบญเบทเปˆเบ™เป†เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰ เบ—เบตเปˆเบ™เบตเป‰.
  5. เปƒเบ™เป€เบกเบ™เบนเบ‚เบงเบฒเป€เบ—เบดเบ‡เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆ "เบชเป‰เบฒเบ‡เบซเบ™เป‰เบฒเบงเบฝเบ ... ".
  6. เปƒเบ™เปเบ–เบš "เบ—เบปเปˆเบงเป„เบ›", เปƒเบซเป‰เบซเบ™เป‰เบฒเบงเบฝเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เบŠเบทเปˆเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡, เปเบฅเบฐเบ›เปˆเบฝเบ™เบชเบฐเบซเบผเบฑเบšเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐ "เปเบฅเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”".
  7. เป„เบ›เบ—เบตเปˆเปเบ–เบš "เบ›เบฐเบ•เบดเบšเบฑเบ”", เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆ "เบชเป‰เบฒเบ‡". เปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก "Program เบซเบผเบท script", เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆ "Browse", เบŠเบญเบเบซเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเบชเบญเบ‡ bat เป„เบŸเบฅเปŒเปเบฅเบฐเบเบปเบ” OK.
  8. เบเบปเบ” OK เปเบฅเบฐ, เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.
  9. เบŠเบญเบโ€‹เบซเบฒโ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹, เป€เบฅเบทเบญเบโ€‹เบกเบฑเบ™โ€‹เปเบฅเบฐโ€‹เบ„เบฅเบดเบโ€‹เปƒเบชเปˆโ€‹เบ›เบธเปˆเบก "Runโ€‹" เปƒเบ™โ€‹เปเบˆโ€‹เบฅเบธเปˆเบกโ€‹เบ‚เบงเบฒโ€‹.

bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡เปเบฅเบฐเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบˆเบปเบ™เบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบขเบธเบ”เบงเบฝเบ, เบซเบผเบทเบ›เบดเบ” PC เบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง.

เบชเบฐเบซเบฅเบธเบš

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ„เบดเบ”เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™ bot เป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก, เปเบ•เปˆเบเบฑเบ‡เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡. เบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเปเบฅเป‰เบงเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ.

เบšเบปเบ”เบ„เบงเบฒเบกเบ•เปเปˆเป„เบ›เบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเปเบ›เป‰เบ™เบžเบดเบกเปƒเบชเปˆ bot เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบชเบฐเบ”เบงเบเบเบงเปˆเบฒ.

เบˆเบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ telegram ะธ youtube เบŠเปˆเบญเบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™