เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 1): เบเบฒเบ™เบชเป‰เบฒเบ‡ bot เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™ telegram

เบœเบนเป‰เบŠเบปเบกเบ‚เบญเบ‡ Telegram เบเปเบฒเบฅเบฑเบ‡เป€เบ•เบตเบšเป‚เบ•เบ‚เบถเป‰เบ™เป€เบฅเบทเป‰เบญเบเป†เบ—เบธเบเป†เบกเบทเป‰, เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเป‚เบ”เบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบ‚เบญเบ‡เบœเบนเป‰เบชเบปเปˆเบ‡เบ‚เปˆเบฒเบง, เบเบฒเบ™เบกเบตเบŠเปˆเบญเบ‡เบ—เบฒเบ‡, เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ, เปเบฅเบฐเปเบ™เปˆเบ™เบญเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡ bots.

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

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

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

เบเบฒเบ™เบ‚เบฝเบ™ telegram bot เปƒเบ™ R (เบชเปˆเบงเบ™ 1): เบเบฒเบ™เบชเป‰เบฒเบ‡ bot เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™ telegram

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

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

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

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

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

  1. เบเบฒเบ™เบชเป‰เบฒเบ‡ telegram bot
  2. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš telegram bot เปƒเบ™ R
  3. เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบ R เบซเบฒ Telegram
  4. เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเปเบฅเปˆเบ™เบชเบฐเปเบเบ™เบซเบ™เป‰เบฒเบงเบฝเบ
  5. เบชเบฐเบซเบฅเบธเบš

เบเบฒเบ™เบชเป‰เบฒเบ‡ telegram bot

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

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡:

เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบ BotFather

I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual (https://core.telegram.org/bots).

You can control me by sending these commands:

/newbot - create a new bot
/mybots - edit your bots [beta]

Edit Bots
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setcommands - change the list of commands
/deletebot - delete a bot

Bot Settings
/token - generate authorization token
/revoke - revoke bot access token
/setinline - toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo - toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback - change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups

Games
/mygames - edit your games (https://core.telegram.org/bots/games) [beta]
/newgame - create a new game (https://core.telegram.org/bots/games)
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ bot เปƒเบซเบกเปˆ, เบชเบปเปˆเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ /newbot.

BotFather เบˆเบฐเบ‚เปเปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบชเปˆเบŠเบทเปˆเบ‚เบญเบ‡ bot เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš.

BotFather, [25.07.20 09:39]
Alright, a new bot. How are we going to call it? Please choose a name for your bot.

Alexey Seleznev, [25.07.20 09:40]
My Test Bot

BotFather, [25.07.20 09:40]
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.

Alexey Seleznev, [25.07.20 09:40]
@my_test_bot

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบชเปˆโ€‹เบŠเบทเปˆโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เปเบ•เปˆโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ•เป‰เบญเบ‡โ€‹เบฅเบปเบ‡โ€‹เบ—เป‰เบฒเบโ€‹เบ”เป‰เบงเบโ€‹ bot.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบเบขเปˆเบฒเบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

Done! Congratulations on your new bot. You will find it at t.me/my_test_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.

Use this token to access the HTTP API:
123456789:abcdefghijklmnopqrstuvwxyz

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

เบ•เปเปˆเป„เบ›เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ API เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš token, เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบกเบฑเบ™เปเบกเปˆเบ™ 123456789:abcdefghijklmnopqrstuvwxyz.

เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เบงเบฝเบเบ‡เบฒเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ bot เปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš telegram bot เปƒเบ™ R

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

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Telegram Bot API เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เบŠเบธเบ” R telegram.bot.

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบฑเบ”เปƒเบ™ R เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ install.packages(), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™, เปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ install.packages("telegram.bot").

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบ”เบ•เปˆเบฒเบ‡เป†เบˆเบฒเบ เบงเบดเบ”เบตเป‚เบญเบ™เบตเป‰.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบฑเบ™:

library(telegram.bot)

เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบ R เบซเบฒ Telegram

bot เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฒเบกเบฒเบ”เบžเบปเบšเป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™ Telegram เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบเบกเบฑเบ™เปเบกเปˆเบ™ @my_test_bot.

เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ”เป†เบเบฑเบš bot, เป€เบŠเบฑเปˆเบ™: "Hey bot." เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฑเบ™เบ™เบตเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰ id เบ‚เบญเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบš bot เป„เบ”เป‰.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบ™ R.

library(telegram.bot)

# ัะพะทะดะฐั‘ะผ ัะบะทะตะผะฟะปัั€ ะฑะพั‚ะฐ
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")

# ะ—ะฐะฟั€ะฐัˆะธะฒะฐะตะผ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ ะฑะพั‚ะต
print(bot$getMe())

# ะŸะพะปัƒั‡ะฐะตะผ ะพะฑะฝะพะฒะปะตะฝะธั ะฑะพั‚ะฐ, ั‚.ะต. ัะฟะธัะพะบ ะพั‚ะฟั€ะฐะฒะปะตะฝะฝั‹ั… ะตะผัƒ ัะพะพะฑั‰ะตะฝะธะน
updates <- bot$getUpdates()

# ะ—ะฐะฟั€ะฐัˆะธะฒะฐะตะผ ะธะดะตะฝั‚ะธั„ะธะบะฐั‚ะพั€ ั‡ะฐั‚ะฐ
# ะŸั€ะธะผะตั‡ะฐะฝะธะต: ะฟะตั€ะตะด ะทะฐะฟั€ะพัะพะผ ะพะฑะฝะพะฒะปะตะฝะธะน ะฒั‹ ะดะพะปะถะฝั‹ ะพั‚ะฟั€ะฐะฒะธั‚ัŒ ะฑะพั‚ัƒ ัะพะพะฑั‰ะตะฝะธะต
chat_id <- updates[[1L]]$from_chat_id()

เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ”เป‰เบงเบเบซเบ™เป‰เบฒเบ—เบตเปˆ Bot(), token เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡.

เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ token เปƒเบ™เบฅเบฐเบซเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปเบฅเบฐเบญเปˆเบฒเบ™เบกเบฑเบ™เบˆเบฒเบเบกเบฑเบ™. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบŠเบธเบ” telegram.bot เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เบŠเบทเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”: R_TELEGRAM_BOT_ะ˜ะœะฏ_ะ’ะะจะ•ะ“ะž_ะ‘ะžะขะ. เปเบ—เบ™โ€‹เบ—เบตเปˆ ะ˜ะœะฏ_ะ’ะะจะ•ะ“ะž_ะ‘ะžะขะ เปเบ—เบ™เบŠเบทเปˆเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ› R_TELEGRAM_BOT_My Test Bot.

เบกเบตเบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก; เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเปเบšเบšเบ—เบปเปˆเบงเป†เป„เบ›เปเบฅเบฐเบ‚เป‰เบฒเบกเป€เบงเบ—เบต. เบชเป‰เบฒเบ‡เปƒเบ™ home directory เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ (เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบกเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ path.expand("~")) เป„เบŸเบฅเปŒเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบŠเบทเปˆ .เป€เบฃเบ™เบงเบตเบฃเบญเบ™. เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ file.edit(path.expand(file.path("~", ".Renviron"))).

เปเบฅเบฐเป€เบžเบตเปˆเบกเปเบ–เบงเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆเบกเบฑเบ™.

R_TELEGRAM_BOT_ะ˜ะœะฏ_ะ’ะะจะ•ะ“ะž_ะ‘ะžะขะ=123456789:abcdefghijklmnopqrstuvwxyz

เบ•เปเปˆเป„เบ›, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ token เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป‚เบ”เบเปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™ bot_token(), i.e. เปเบšเบšเบ™เบตเป‰:

bot <- Bot(token = bot_token("My Test Bot"))

เบงเบดเบ—เบตเบเบฒเบ™ getUpdates()เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ bot, i.e. เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบฅเบฒเบง. เบงเบดเบ—เบตเบเบฒเบ™ from_chat_id(), เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš ID เบ‚เบญเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเบ–เบทเบเบชเบปเปˆเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ ID เบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบ bot.

เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ id เบชเบปเบ™เบ—เบฐเบ™เบฒเบˆเบฒเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™ getUpdates() เบ—เปˆเบฒเบ™เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบทเปˆเบ™เป†. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก.

updates[[1L]]$message$from

$id
[1] 000000000

$is_bot
[1] FALSE

$first_name
[1] "Alexey"

$last_name
[1] "Seleznev"

$username
[1] "AlexeySeleznev"

$language_code
[1] "ru"

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบ bot เป„เบ›เบซเบฒ Telegram. เปƒเบซเป‰เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ sendMessage(), เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบœเปˆเบฒเบ™ ID เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ, เบ‚เปเป‰เบ„เบงเบฒเบก, เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เปเป‰เบ„เบงเบฒเบก. เบ›เบฐเป€เบžเบ” markup เบชเบฒเบกเบฒเบ” Markdown เบซเบผเบท HTML เปเบฅเบฐเบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡ parse_mode.

# ะžั‚ะฟั€ะฐะฒะบะฐ ัะพะพะฑั‰ะตะฝะธั
bot$sendMessage(chat_id,
                text = "ะŸั€ะธะฒะตั‚, *ะถะธั€ะฝั‹ะน ั‚ะตะบัั‚* _ะบัƒั€ัะธะฒ_",
                parse_mode = "Markdown"
)

เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบš Markdown:

  • เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ•เบปเบงเปœเบฒเบ–เบทเบเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบ”เป‰เบงเบ *:
    • เบ•เบปเบงเบขเปˆเบฒเบ‡: *ะถะธั€ะฝั‹ะน ัˆั€ะธั‚ั„*
    • เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ•เบปเบงเปœเบฒ
  • เป‚เบ•เป€เบ™เบตเป‰เบ‡เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบ‚เบตเบ”เบเป‰เบญเบ‡:
    • เบ•เบปเบงเบขเปˆเบฒเบ‡: _ะบัƒั€ัะธะฒ_
    • เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: เป‚เบ•เป€เบ™เบตเป‰เบ‡
  • เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ monospace, เป€เบŠเบดเปˆเบ‡เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™, เบ–เบทเบเบฅเบฐเบšเบธเป‚เบ”เบเปƒเบŠเป‰ apostrophes - `:
    • เบ•เบปเบงเบขเปˆเบฒเบ‡: `เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ monospace`
    • เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: ะผะพะฝะพัˆะธั€ะธะฝะฝั‹ะน ัˆั€ะธั„ั‚

เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบš HTML markup:
เปƒเบ™ HTML, เบ—เปˆเบฒเบ™เบซเปเปˆเบชเปˆเบงเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเปƒเบ™ tags, เบ•เบปเบงเบขเปˆเบฒเบ‡ <ั‚ะตะณ>ั‚ะตะบัั‚</ั‚ะตะณ>.

  • <tag> - เป€เบ›เบตเบ”เปเบ—เบฑเบ
  • - เบ›เบดเบ”เบ›เป‰เบฒเบ

HTML markup tags

  • <b> - เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ•เบปเบงเปœเบฒ
    • เบ•เบปเบงเบขเปˆเบฒเบ‡: <b>ะถะธั€ะฝั‹ะน ัˆั€ะธั„ั‚</b>
    • เบœเบปเบ™เบเบฐเบ—เบปเบš เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ•เบปเบงเปœเบฒ
  • <i> - เบ•เบปเบงเบญเบฝเบ‡
    • เบ•เบปเบงเบขเปˆเบฒเบ‡: <i>ะบัƒั€ัะธะฒ</i>
    • เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: เป‚เบ•เป€เบ™เบตเป‰เบ‡
  • โ€” ะผะพะฝะพัˆะธั€ะธะฝะฝั‹ะน ัˆั€ะธั„ั‚
    • เบ•เบปเบงเบขเปˆเบฒเบ‡: ะผะพะฝะพัˆะธั€ะธะฝะฝั‹ะน ัˆั€ะธั„ั‚
    • เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: ะผะพะฝะพัˆะธั€ะธะฝะฝั‹ะน ัˆั€ะธั„ั‚

เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบญเบทเปˆเบ™เป†เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบžเบดเป€เบชเบ”:

# ะžั‚ะฟั€ะฐะฒะธั‚ัŒ ะธะทะพะฑั€ะฐะถะตะฝะธะต
bot$sendPhoto(chat_id,
  photo = "https://telegram.org/img/t_logo.png"
)

# ะžั‚ะฟั€ะฐะฒะบะฐ ะณะพะปะพัะพะฒะพะณะพ ัะพะพะฑั‰ะตะฝะธั
bot$sendAudio(chat_id,
  audio = "http://www.largesound.com/ashborytour/sound/brobob.mp3"
)

# ะžั‚ะฟั€ะฐะฒะธั‚ัŒ ะดะพะบัƒะผะตะฝั‚
bot$sendDocument(chat_id,
  document = "https://github.com/ebeneditos/telegram.bot/raw/gh-pages/docs/telegram.bot.pdf"
)

# ะžั‚ะฟั€ะฐะฒะธั‚ัŒ ัั‚ะธะบะตั€
bot$sendSticker(chat_id,
  sticker = "https://www.gstatic.com/webp/gallery/1.webp"
)

# ะžั‚ะฟั€ะฐะฒะธั‚ัŒ ะฒะธะดะตะพ
bot$sendVideo(chat_id,
  video = "http://techslides.com/demos/sample-videos/small.mp4"
)

# ะžั‚ะฟั€ะฐะฒะธั‚ัŒ gif ะฐะฝะธะผะฐั†ะธัŽ
bot$sendAnimation(chat_id,
  animation = "https://media.giphy.com/media/sIIhZliB2McAo/giphy.gif"
)

# ะžั‚ะฟั€ะฐะฒะธั‚ัŒ ะปะพะบะฐั†ะธัŽ
bot$sendLocation(chat_id,
  latitude = 51.521727,
  longitude = -0.117255
)

# ะ˜ะผะธั‚ะฐั†ะธั ะดะตะนัั‚ะฒะธั ะฒ ั‡ะฐั‚ะต
bot$sendChatAction(chat_id,
  action = "typing"
)

เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ sendPhoto() เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบเบฒเบŸเบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เป€เบ›เบฑเบ™เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ”เบเปƒเบŠเป‰เบŠเบธเบ” ggplot2.

เบเบงเบ”เป€เบšเบดเปˆเบ‡ Windows Task Scheduler เปเบฅเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบขเบธเบ”เป€เบŠเบปเบฒเบขเปˆเบฒเบ‡เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Windows Task Scheduler เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ” taskscheduleR, เปเบฅเบฐเป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™, เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ” dplyr.

# ะฃัั‚ะฐะฝะพะฒะบะฐ ะฟะฐะบะตั‚ะพะฒ
install.packages(c('taskscheduleR', 'dplyr'))
# ะŸะพะดะบะปัŽั‡ะตะฝะธะต ะฟะฐะบะตั‚ะพะฒ
library(taskscheduleR)
library(dplyr)

เบ•เปเปˆเป„เบ›, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆ taskscheduler_ls() เบžเบงเบเป€เบฎเบปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบˆเบฒเบเบœเบนเป‰เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆ filter() เบˆเบฒเบเบŠเบธเบ” dplyr เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเบญเบญเบเบˆเบฒเบเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเปเบฒเป€เบฅเบฑเบ”เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเบธเบ”เบ—เป‰เบฒเบเป€เบ›เบฑเบ™ 0, เปเบฅเบฐเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเป€เบ„เบตเบเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš 267011, เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบžเบดเบเบฒเบ™, เปเบฅเบฐเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

# ะทะฐะฟั€ะฐัˆะธะฒะฐะตะผ ัะฟะธัะพะบ ะทะฐะดะฐั‡
task <- task <- taskscheduler_ls() %>%
        filter(! `Last Result`  %in% c("0", "267011") & 
               `Scheduled Task State` == "Enabled" & 
               Status != "Running") %>%
        select(TaskName) %>%
        unique() %>%
        unlist() %>%
        paste0(., collapse = "n")

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

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

  • filter() โ€” เบเบฑเปˆเบ™โ€‹เบ•เบญเบ‡โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เบ•เบฒเบกโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹เบ—เบตเปˆโ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบ‚เป‰เบฒเบ‡โ€‹เป€เบ—เบดเบ‡โ€‹
  • select() โ€” เบ›เบฐเป„เบงเป‰เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบงเบฝเบ
  • unique() - เป€เบญเบปเบฒโ€‹เบŠเบทเปˆโ€‹เบŠโ€‹เป‰โ€‹เปเบฒโ€‹เบเบฑเบ™โ€‹
  • unlist() โ€” เบ›เปˆเบฝเบ™เบ–เบฑเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเป€เบฅเบทเบญเบเป€เบ›เบฑเบ™ vector
  • paste0() โ€” เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบงเบฝเบโ€‹เบ‡เบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป€เบชเบฑเป‰เบ™โ€‹, เปเบฅเบฐโ€‹เบงเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เป‰เบญเบ™โ€‹เป€เบชเบฑเป‰เบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ•เบปเบงโ€‹เปเบเบโ€‹, i.e. n.

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

bot$sendMessage(chat_id,
                text = task,
                parse_mode = "Markdown"
)

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰เบฅเบฐเบซเบฑเบ” bot เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

Task review code bot

# ะŸะพะดะบะปัŽั‡ะตะฝะธะต ะฟะฐะบะตั‚ะฐ
library(telegram.bot)
library(taskscheduleR)
library(dplyr)

# ะธะฝะธั†ะธะฐะปะธะทะธั€ัƒะตะผ ะฑะพั‚ะฐ
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")

# ะธะดะตะฝั‚ะธั„ะธะบะฐั‚ะพั€ ั‡ะฐั‚ะฐ
chat_id <- 123456789

# ะทะฐะฟั€ะฐัˆะธะฒะฐะตะผ ัะฟะธัะพะบ ะทะฐะดะฐั‡
task <- taskscheduler_ls() %>%
        filter(! `Last Result`  %in% c("0", "267011")  &
               `Scheduled Task State` == "Enabled" & 
               Status != "Running") %>%
        select(TaskName) %>%
        unique() %>%
        unlist() %>%
        paste0(., collapse = "n")

# ะตัะปะธ ะตัั‚ัŒ ะฟั€ะพะฑะปะตะผะฝั‹ะต ะทะฐะดะฐั‡ะธ ะพั‚ะฟั€ะฐะฒะปัะตะผ ัะพะพะฑั‰ะตะฝะธะต
if ( task != "" ) {

  bot$sendMessage(chat_id,
                  text = task,
                  parse_mode = "Markdown"
  )

}

เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ—เบปเบ”เปเบ—เบ™ token bot เปเบฅเบฐ ID เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบ™เบฅเบฐเบซเบฑเบ”.

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

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เปƒเบชเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เปˆเบฒเบ‡เป†เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ id เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเปเบฅเบฐ token เปƒเบ™เบกเบฑเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™ config, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบธเบ” configr.

เบ•เบปเบงเบขเปˆเบฒเบ‡ ini config

[telegram_bot]
;ะฝะฐัั‚ั€ะพะนะบะธ ั‚ะตะปะตะณั€ะฐะผ ะฑะพั‚ะฐ ะธ ั‡ะฐั‚ะฐ, ะฒ ะบะพั‚ะพั€ั‹ะน ะฑัƒะดัƒั‚ ะฟั€ะธั…ะพะดะธั‚ัŒ ัƒะฒะตะดะพะผะปะตะฝะธั
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบ•เบปเบงเปเบ›เบˆเบฒเบ config เปƒเบ™ R

library(configr)

# ั‡ั‚ะตะฝะธะต ะบะพะฝั„ะธะฝะฐ
config <- read.config('C:/ะฟัƒั‚ัŒ_ะบ_ะบะพะฝั„ะธะณัƒ/config.cfg', rcmd.parse = TRUE)

bot_token <- config$telegram_bot$bot_token
chat_id     <- config$telegram_bot$chat_id

เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเปเบเบ™เบซเบ™เป‰เบฒเบงเบฝเบ

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

เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบฅเบฐเบซเบฑเบ” bot เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ check_bot.R. เป€เบžเบทเปˆเบญเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเปƒเบซเป‰เป„เบŸเบฅเปŒเบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด, เปƒเบซเป‰เป€เบฎเบฑเบ”เบ•เบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰:

  1. เบ‚เบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆ R เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš Path; เปƒเบ™ Windows, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบˆเบฐเป€เบ›เบฑเบ™เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰: C:Program FilesRR-4.0.2bin.
  2. เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ bat เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปเบ–เบง R CMD BATCH C:rscriptscheck_botcheck_bot.R. เปเบ—เบ™เบ—เบตเปˆ C:rscriptscheck_botcheck_bot.R เป„เบ›เบชเบนเปˆเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบ•เบฑเบกเป„เบ›เบซเบฒเป„เบŸเบฅเปŒ R เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.
  3. เบ•เปเปˆเป„เบ›, เปƒเบŠเป‰ Windows Task Scheduler เป€เบžเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เบธเบเป†เป€เบ„เบดเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡.

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

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

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเป€เบ–เบดเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก Windows Task Scheduler, เปเบ•เปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบญเบเบฐเบชเบฒเบ™เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เปƒเบ”เป†, เบˆเบฒเบเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ”เบดเบ™เบŸเป‰เบฒเบญเบฒเบเบฒเบ”เบˆเบปเบ™เป€เบ–เบดเบ‡เบฅเบฒเบ„เบฒเบซเบผเบฑเบเบŠเบฑเบšเปƒเบ™เบ•เบฐเบซเบผเบฒเบ”เบซเบผเบฑเบเบŠเบฑเบš, เป€เบžเบฒเบฐเบงเปˆเบฒ. R เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ.

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

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

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