ื›ืชื™ื‘ืช ื‘ื•ื˜ ื˜ืœื’ืจื ื‘-R (ื—ืœืง 1): ื™ืฆื™ืจืช ื‘ื•ื˜ ื•ืฉื™ืžื•ืฉ ื‘ื• ืœืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ื‘ื˜ืœื’ืจื

ืงื”ืœ ื”ื˜ืœื’ืจื ื’ื“ืœ ื‘ืื•ืคืŸ ืืงืกืคื•ื ื ืฆื™ืืœื™ ืžื“ื™ ื™ื•ื, ื–ื” ืžืงืœ ืขืœ ื™ื“ื™ ื”ื ื•ื—ื•ืช ืฉืœ ื”ืžืกื ื’'ืจ, ื ื•ื›ื—ื•ืช ืฉืœ ืขืจื•ืฆื™ื, ืฆ'ืื˜ื™ื, ื•ื›ืžื•ื‘ืŸ ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ื‘ื•ื˜ื™ื.

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื‘ื•ื˜ื™ื ืœืžื˜ืจื•ืช ืฉื•ื ื•ืช ืœื—ืœื•ื˜ื™ืŸ, ืžืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชืงืฉื•ืจืช ืขื ื”ืœืงื•ื—ื•ืช ืฉืœืš ื•ืขื“ ืœื ื™ื”ื•ืœ ื”ืžืฉื™ืžื•ืช ืฉืœืš.

ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื˜ืœื’ืจื ื›ื“ื™ ืœื‘ืฆืข ื›ืœ ืคืขื•ืœื” ื“ืจืš ื‘ื•ื˜: ืœืฉืœื•ื— ืื• ืœื‘ืงืฉ ื ืชื•ื ื™ื, ืœื”ืคืขื™ืœ ืžืฉื™ืžื•ืช ื‘ืฉืจืช, ืœืืกื•ืฃ ืžื™ื“ืข ืœืžืกื“ ื ืชื•ื ื™ื, ืœืฉืœื•ื— ืžื™ื™ืœื™ื ื•ื›ืŸ ื”ืœืื”.

ืื ื™ ืžืชื›ื ืŸ ืœื›ืชื•ื‘ ืกื“ืจืช ืžืืžืจื™ื ืขืœ ืื™ืš ืœืขื‘ื•ื“ ืขื ืžืžืฉืง API ืฉืœ ื‘ื•ื˜ ื˜ืœื’ืจื, ื•ื›ืชื•ื‘ ื‘ื•ื˜ื™ื ืฉื™ืชืื™ืžื• ืœืฆืจื›ื™ื ืฉืœืš.

ื›ืชื™ื‘ืช ื‘ื•ื˜ ื˜ืœื’ืจื ื‘-R (ื—ืœืง 1): ื™ืฆื™ืจืช ื‘ื•ื˜ ื•ืฉื™ืžื•ืฉ ื‘ื• ืœืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ื‘ื˜ืœื’ืจื

ื‘ืžืืžืจ ืจืืฉื•ืŸ ื–ื” ื ื‘ื™ืŸ ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื‘ื•ื˜ ื˜ืœื’ืจื ื•ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช ื‘ื˜ืœื’ืจื.

ื›ืชื•ืฆืื” ืžื›ืš, ื™ื”ื™ื” ืœื ื• ื‘ื•ื˜ ืฉื™ื‘ื“ื•ืง ืืช ืžืฆื‘ ื”ื‘ื™ืฆื•ืข ื”ืื—ืจื•ืŸ ืฉืœ ื›ืœ ื”ืžืฉื™ืžื•ืช ื‘-Windows Task Scheduler, ื•ื™ืฉืœื— ืœืš ื”ื•ื“ืขื•ืช ืื ืื—ืช ืžื”ืŸ ื ื›ืฉืœื”.

ืื‘ืœ ืžื˜ืจืช ืกื“ืจืช ื”ืžืืžืจื™ื ื”ื–ื• ื”ื™ื ืœื ืœืœืžื“ ืื•ืชืš ืื™ืš ืœื›ืชื•ื‘ ื‘ื•ื˜ ืœืžืฉื™ืžื” ืกืคืฆื™ืคื™ืช ื•ืฆืจื”, ืืœื ืœื”ืฆื™ื’ ืœืš ื‘ืื•ืคืŸ ื›ืœืœื™ ืืช ื”ืชื—ื‘ื™ืจ ืฉืœ ื”ื—ื‘ื™ืœื” telegram.bot, ื•ื“ื•ื’ืžืื•ืช ืงื•ื“ ืฉื‘ืืžืฆืขื•ืชืŸ ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื‘ื•ื˜ื™ื ื›ื“ื™ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื•ืช ืฉืœืš.

ืชื•ื›ืŸ

ืื ืืชื” ืžืขื•ื ื™ื™ืŸ ื‘ื ื™ืชื•ื— ื ืชื•ื ื™ื, ืื•ืœื™ ืืชื” ืžืขื•ื ื™ื™ืŸ ื‘- ืฉืœื™ ืžื‘ืจืง ะธ YouTube ืขืจื•ืฆื™ื. ืจื•ื‘ ื”ืชื•ื›ืŸ ืžื•ืงื“ืฉ ืœืฉืคืช R.

  1. ื™ืฆื™ืจืช ื‘ื•ื˜ ื˜ืœื’ืจื
  2. ื”ืชืงื ืช ื—ื‘ื™ืœื” ืœืขื‘ื•ื“ื” ืขื ื‘ื•ื˜ ื˜ืœื’ืจื ื‘-R
  3. ืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ืž-R ืœื˜ืœื’ืจื
  4. ื”ื’ื“ืจืช ืœื•ื— ื–ืžื ื™ื ืœื”ืคืขืœืช ืกืจื™ืงื•ืช ืžืฉื™ืžื•ืช
  5. ืžืกืงื ื”

ื™ืฆื™ืจืช ื‘ื•ื˜ ื˜ืœื’ืจื

ืจืืฉื™ืช, ืขืœื™ื ื• ืœื™ืฆื•ืจ ื‘ื•ื˜. ื–ื” ื ืขืฉื” ื‘ืืžืฆืขื•ืช ื‘ื•ื˜ ืžื™ื•ื—ื“ BotFather, ืœืš ืœ ืงืฉืจ ื•ืœื›ืชื•ื‘ ืœื‘ื•ื˜ /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

ื›ื“ื™ ืœื™ืฆื•ืจ ื‘ื•ื˜ ื—ื“ืฉ, ืฉืœื— ืืช ื”ืคืงื•ื“ื” /newbot.

BotFather ื™ื‘ืงืฉ ืžืžืš ืœื”ื–ื™ืŸ ืืช ืฉื ื”ื‘ื•ื˜ ื•ื”ืชื—ื‘ืจื•ืช.

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 ืฉื”ืชืงื‘ืœ, ื‘ื“ื•ื’ืžื” ืฉืœื™ ื”ื•ื ื›ืŸ 123456789:abcdefghijklmnopqrstuvwxyz.

ื‘ืฉืœื‘ ื–ื” ืžืกืชื™ื™ืžืช ืขื‘ื•ื“ืช ื”ื”ื›ื ื” ืœื™ืฆื™ืจืช ื”ื‘ื•ื˜.

ื”ืชืงื ืช ื—ื‘ื™ืœื” ืœืขื‘ื•ื“ื” ืขื ื‘ื•ื˜ ื˜ืœื’ืจื ื‘-R

ืื ื™ ืžื ื™ื— ืฉื›ื‘ืจ ืžื•ืชืงื ืช ืืฆืœืš ืฉืคืช R ื•ืกื‘ื™ื‘ืช ื”ืคื™ืชื•ื— RStudio. ืื ื–ื” ืœื ื”ืžืงืจื”, ืื– ืืชื” ื™ื›ื•ืœ ืœื”ืกืชื›ืœ ืขืœ ื–ื” ืžื“ืจื™ืš ื•ื™ื“ืื• ื›ื™ืฆื“ ืœื”ืชืงื™ืŸ ืื•ืชื.

ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ื”-API ืฉืœ Telegram Bot ื ืฉืชืžืฉ ื‘ื—ื‘ื™ืœืช R telegram.bot.

ื”ืชืงื ืช ื—ื‘ื™ืœื•ืช ื‘-R ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ื”ืคื•ื ืงืฆื™ื” install.packages(), ืื– ื›ื“ื™ ืœื”ืชืงื™ืŸ ืืช ื”ื—ื‘ื™ืœื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื, ื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” install.packages("telegram.bot").

ืืชื” ื™ื›ื•ืœ ืœืœืžื•ื“ ืขื•ื“ ืขืœ ื”ืชืงื ืช ื—ื‘ื™ืœื•ืช ืฉื•ื ื•ืช ืž ื”ื•ื™ื“ืื• ื”ื–ื”.

ืœืื—ืจ ื”ืชืงื ืช ื”ื—ื‘ื™ืœื”, ืขืœื™ืš ืœื—ื‘ืจ ืื•ืชื”:

library(telegram.bot)

ืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ืž-R ืœื˜ืœื’ืจื

ืืช ื”ื‘ื•ื˜ ืฉื™ืฆืจืช ื ื™ืชืŸ ืœืžืฆื•ื ื‘ื˜ืœื’ืจื ื‘ืืžืฆืขื•ืช ื”ื”ืชื—ื‘ืจื•ืช ืฉืฆื•ื™ื ื” ื‘ืžื”ืœืš ื”ื™ืฆื™ืจื”, ื‘ืžืงืจื” ืฉืœื™ @my_test_bot.

ืฉืœื— ืœื‘ื•ื˜ ื›ืœ ื”ื•ื“ืขื”, ื›ื’ื•ืŸ "ื”ื™ื™ ื‘ื•ื˜". ื›ืจื’ืข, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืืช ื–ื” ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ืžื–ื”ื” ืฉืœ ื”ืฆ'ืื˜ ืฉืœืš ืขื ื”ื‘ื•ื˜.

ื›ืขืช ืื ื• ื›ื•ืชื‘ื™ื ืืช ื”ืงื•ื“ ื”ื‘ื ื‘-R.

library(telegram.bot)

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

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

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

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

ื‘ืชื—ื™ืœื”, ืื ื• ื™ื•ืฆืจื™ื ืžื•ืคืข ืฉืœ ื”ื‘ื•ื˜ ืฉืœื ื• ืขื ื”ืคื•ื ืงืฆื™ื” Bot(), ื™ืฉ ืœื”ืขื‘ื™ืจ ืืœื™ื• ืืช ื”ืืกื™ืžื•ืŸ ืฉื”ืชืงื‘ืœ ื‘ืขื‘ืจ ื›ืืจื’ื•ืžื ื˜.

ื–ื” ืœื ื ื—ืฉื‘ ืœืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืื—ืกืŸ ืืช ื”ืืกื™ืžื•ืŸ ื‘ืงื•ื“, ืื– ืืชื” ื™ื›ื•ืœ ืœืื—ืกืŸ ืื•ืชื• ื‘ืžืฉืชื ื” ืกื‘ื™ื‘ื” ื•ืœืงืจื•ื ืื•ืชื• ืžืžื ื•. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ื—ื‘ื™ืœื” telegram.bot ื™ื•ืฉืžื” ืชืžื™ื›ื” ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื‘ืฉืžื•ืช ื”ื‘ืื™ื: R_TELEGRAM_BOT_ะ˜ะœะฏ_ะ’ะะจะ•ะ“ะž_ะ‘ะžะขะ... ื‘ืžืงื•ื ื–ืืช ะ˜ะœะฏ_ะ’ะะจะ•ะ“ะž_ะ‘ะžะขะ ืชื—ืœื™ืฃ ืืช ื”ืฉื ืฉืฆื™ื™ื ืช ื‘ืขืช ื”ื™ืฆื™ืจื”, ื‘ืžืงืจื” ืฉืœื™ ื–ื” ื™ื”ื™ื” ืžืฉืชื ื” R_TELEGRAM_BOT_My Test Bot.

ื™ืฉื ืŸ ืžืกืคืจ ื“ืจื›ื™ื ืœื™ืฆื•ืจ ืžืฉืชื ื” ืกื‘ื™ื‘ื”; ืื ื™ ืืกืคืจ ืœืš ืขืœ ื”ื“ืจืš ื”ืื•ื ื™ื‘ืจืกืœื™ืช ื•ื”ื—ื•ืฆื”-ืคืœื˜ืคื•ืจืžื” ื‘ื™ื•ืชืจ. ืฆื•ืจ ื‘ืกืคืจื™ื™ืช ื”ื‘ื™ืช ืฉืœืš (ืชื•ื›ืœ ืœืžืฆื•ื ืื•ืชื” ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” path.expand("~")) ืงื•ื‘ืฅ ื˜ืงืกื˜ ืขื ื”ืฉื .Renviron. ืืชื” ื™ื›ื•ืœ ื’ื ืœืขืฉื•ืช ื–ืืช ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” file.edit(path.expand(file.path("~", ".Renviron"))).

ื•ื”ื•ืกื™ืคื• ืœื• ืืช ื”ืฉื•ืจื” ื”ื‘ืื”.

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

ืœืื—ืจ ืžื›ืŸ, ืชื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืืกื™ืžื•ืŸ ืฉื ืฉืžืจ ื‘ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ื‘ืืžืฆืขื•ืช ื”ืคื•ื ืงืฆื™ื” bot_token(), ื›ืœื•ืžืจ ื›ื›ื”:

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

ืฉื™ื˜ื” getUpdates()ืžืืคืฉืจ ืœื ื• ืœืงื‘ืœ ืขื“ื›ื•ื ื™ ื‘ื•ื˜, ื›ืœื•ืžืจ. ื”ื•ื“ืขื•ืช ืฉื ืฉืœื—ื• ืืœื™ื•. ืฉื™ื˜ื” from_chat_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"

ืื–, ื‘ืฉืœื‘ ื–ื” ื›ื‘ืจ ื™ืฉ ืœื ื• ืืช ื›ืœ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ื›ื“ื™ ืœืฉืœื•ื— ื”ื•ื“ืขื” ืžื‘ื•ื˜ ืœื˜ืœื’ืจื. ื‘ื•ืื• ื ืฉืชืžืฉ ื‘ืฉื™ื˜ื” sendMessage(), ืฉืืœื™ื• ืขืœื™ืš ืœื”ืขื‘ื™ืจ ืืช ืžื–ื”ื” ื”ืฆ'ืื˜, ื˜ืงืกื˜ ื”ื”ื•ื“ืขื” ื•ืกื•ื’ ืกื™ืžื•ืŸ ื˜ืงืกื˜ ื”ื”ื•ื“ืขื”. ืกื•ื’ ื”ืกื™ืžื•ืŸ ื™ื›ื•ืœ ืœื”ื™ื•ืช Markdown ืื• HTML ื•ื”ื•ื ืžื•ื’ื“ืจ ืขืœ ื™ื“ื™ ื”ืืจื’ื•ืžื ื˜ parse_mode.

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

ื™ืกื•ื“ื•ืช ืขื™ืฆื•ื‘ ืกื™ืžื•ืŸ:

  • ื’ื•ืคืŸ ืžื•ื“ื’ืฉ ืžืกื•ืžืŸ ืขื *:
    • ืœื“ื•ื’ืžื: *ะถะธั€ะฝั‹ะน ัˆั€ะธั‚ั„*
    • ื”ืชื•ืฆืื” ื’ื•ืคืŸ ืžื•ื“ื’ืฉ
  • ื ื˜ื•ื™ ืžืกื•ืžืŸ ื‘ืืžืฆืขื•ืช ืงื•ื•ื™ื ืชื—ืชื•ื ื™ื:
    • ืœื“ื•ื’ืžื: _ะบัƒั€ัะธะฒ_
    • ื”ืชื•ืฆืื” ืื•ึนืชึดื™ื•ึนืช ืžื•ึผื˜ื•ึนืช
  • ื”ื’ื•ืคืŸ ื”ืžื•ื ื•ืกืคื™ื™ืก, ื”ืžืฉืžืฉ ื‘ื“ืจืš ื›ืœืœ ืœื”ื“ื’ืฉืช ืงื•ื“ ื”ืชื•ื›ื ื™ืช, ืžืฆื•ื™ืŸ ื‘ืืžืฆืขื•ืช ืืคื•ืกืชืจื•ืคื™ื - `:
    • ื“ื•ื’ืžื”: `ื’ื•ืคืŸ ืžื•ื ื•-ืจื•ื•ื—`
    • ื”ืชื•ืฆืื” ะผะพะฝะพัˆะธั€ะธะฝะฝั‹ะน ัˆั€ะธั„ั‚

ื™ืกื•ื“ื•ืช ืฉืœ ืขื™ืฆื•ื‘ ืกื™ืžื•ืŸ HTML:
ื‘-HTML, ืืชื” ืขื•ื˜ืฃ ืืช ื”ื—ืœืง ืฉืœ ื”ื˜ืงืกื˜ ืฉืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ื“ื’ืฉ ื‘ืชื’ื™ื, ืœืžืฉืœ <ั‚ะตะณ>ั‚ะตะบัั‚</ั‚ะตะณ>.

  • <tag> - ืชื’ ืคืชื™ื—ื”
  • - ืชื’ ืกื’ื™ืจื”

ืชื’ื™ ืกื™ืžื•ืŸ HTML

  • <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 ื•ืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ืขืœ ืžืฉื™ืžื•ืช ืฉื”ืกืชื™ื™ืžื• ื‘ืื•ืคืŸ ื—ืจื™ื’

ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ืžืชื–ืžืŸ ื”ืžืฉื™ืžื•ืช ืฉืœ Windows ืืชื” ืฆืจื™ืš ืœื”ืชืงื™ืŸ ืืช ื”ื—ื‘ื™ืœื” 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 ื›ืขืช ื™ืฉ ืœื ื• ืจืฉื™ืžื” ืฉืœ ืžืฉื™ืžื•ืช ืฉื ื›ืฉืœื•, ืขืœื™ื ื• ืœืฉืœื•ื— ืจืฉื™ืžื” ื–ื• ืœื˜ืœื’ืจื.

ืื ื ืกืชื›ืœ ืขืœ ื›ืœ ืคืงื•ื“ื” ื‘ื™ืชืจ ืคื™ืจื•ื˜, ืื–:

  • filter() - ืžืกื ืŸ ืืช ืจืฉื™ืžืช ื”ืžืฉื™ืžื•ืช ื‘ื”ืชืื ืœืชื ืื™ื ืฉืชื•ืืจื• ืœืขื™ืœ
  • select() โ€” ืžืฉืื™ืจ ืจืง ืฉื“ื” ืื—ื“ ื‘ื˜ื‘ืœื” ืขื ืฉื ื”ืžืฉื™ืžื•ืช
  • unique() - ืžืกื™ืจ ืฉืžื•ืช ื›ืคื•ืœื™ื
  • unlist() - ืžืžื™ืจื” ืืช ืขืžื•ื“ืช ื”ื˜ื‘ืœื” ืฉื ื‘ื—ืจื” ืœื•ืงื˜ื•ืจ
  • paste0() - ืžื—ื‘ืจ ืืช ืฉืžื•ืช ื”ืžืฉื™ืžื•ืช ืœืฉื•ืจื” ืื—ืช, ื•ืžื›ื ื™ืก ื”ื–ื ืช ืฉื•ืจื” ื›ืžืคืจื™ื“, ื›ืœื•ืžืจ. n.

ื›ืœ ืžื” ืฉื ื•ืชืจ ืœื ื• ื”ื•ื ืœืฉืœื•ื— ืืช ื”ืชื•ืฆืื” ื”ื–ื• ื‘ืืžืฆืขื•ืช ืžื‘ืจืง.

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

ืื–, ื›ืจื’ืข ืงื•ื“ ื”ื‘ื•ื˜ ื ืจืื” ื›ืš:

ืงื•ื“ ื‘ื•ื˜ ืกืงื™ืจืช ืžืฉื™ืžื•ืช

# ะŸะพะดะบะปัŽั‡ะตะฝะธะต ะฟะฐะบะตั‚ะฐ
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"
  )

}

ื›ืฉืืชื” ืžืฉืชืžืฉ ื‘ื“ื•ื’ืžื” ืฉืœืžืขืœื”, ื”ื—ืœืฃ ืืช ืืกื™ืžื•ืŸ ื”ื‘ื•ื˜ ืฉืœืš ื•ืืช ืžื–ื”ื” ื”ืฆ'ืื˜ ืฉืœืš ื‘ืงื•ื“.

ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืชื ืื™ื ืœืกื™ื ื•ืŸ ืžืฉื™ืžื•ืช, ืœื“ื•ื’ืžื”, ื‘ื“ื™ืงืช ื”ืžืฉื™ืžื•ืช ืฉื™ืฆืจืช ื‘ืœื‘ื“, ืœืžืขื˜ ืžืฉื™ืžื•ืช ืžืขืจื›ืช.

ืืชื” ื™ื›ื•ืœ ื’ื ืœื”ื›ื ื™ืก ื”ื’ื“ืจื•ืช ืฉื•ื ื•ืช ืœืงื•ื‘ืฅ ืชืฆื•ืจื” ื ืคืจื“, ื•ืœืื—ืกืŸ ื‘ื• ืืช ืžื–ื”ื” ื”ืฆ'ืื˜ ื•ื”ืืกื™ืžื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื”ืชืฆื•ืจื”, ืœืžืฉืœ, ื‘ืืžืฆืขื•ืช ื”ื—ื‘ื™ืœื” configr.

ื“ื•ื’ืžื” ืœ-ini config

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

ื“ื•ื’ืžื” ืœืงืจื™ืืช ืžืฉืชื ื™ื ืžืชืฆื•ืจื” ื‘-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

ื”ื’ื“ืจืช ืœื•ื— ื–ืžื ื™ื ืœื”ืคืขืœืช ืกืจื™ืงื•ืช ืžืฉื™ืžื•ืช

ืชื”ืœื™ืš ื”ื’ื“ืจืช ื”ืฉืงืช ืกืงืจื™ืคื˜ื™ื ื‘ืœื•ื— ื–ืžื ื™ื ืžืชื•ืืจ ื‘ืคื™ืจื•ื˜ ืจื‘ ื™ื•ืชืจ ื‘ื–ื” ัั‚ะฐั‚ัŒะต. ื›ืืŸ ืืชืืจ ืจืง ืืช ื”ืฉืœื‘ื™ื ืฉืฆืจื™ืš ืœื‘ืฆืข ืœืฉื ื›ืš. ืื ืื—ื“ ืžื”ืฉืœื‘ื™ื ืœื ื‘ืจื•ืจ ืœืš, ืขื™ื™ืŸ ื‘ืžืืžืจ ืืœื™ื• ืกื™ืคืงืชื™ ืงื™ืฉื•ืจ.

ื ื ื™ื— ืฉืฉืžืจื ื• ืืช ืงื•ื“ ื”ื‘ื•ื˜ ืฉืœื ื• ื‘ืงื•ื‘ืฅ check_bot.R. ื›ื“ื™ ืœืชื–ืžืŸ ื”ืคืขืœื” ืฉืœ ืงื•ื‘ืฅ ื–ื” ื‘ืื•ืคืŸ ืงื‘ื•ืข, ื‘ืฆืข ืืช ื”ืฉืœื‘ื™ื ื”ื‘ืื™ื:

  1. ื›ืชื•ื‘ ืืช ื”ื ืชื™ื‘ ืœืชื™ืงื™ื” ืฉื‘ื” ืžื•ืชืงืŸ R ื‘ืžืฉืชื ื” ืžืขืจื›ืช ื”ื ืชื™ื‘; ื‘-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 ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืœื•ื— ื–ืžื ื™ื ืœื”ืคืขืœื”, ืœื“ื•ื’ืžื”, ื›ืœ ื—ืฆื™ ืฉืขื”.

ืžืกืงื ื”

ื‘ืžืืžืจ ื–ื”, ื”ื‘ื ื• ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื‘ื•ื˜ ื•ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช ืฉื•ื ื•ืช ื‘ื˜ืœื’ืจื.

ืชื™ืืจืชื™ ืืช ื”ืžืฉื™ืžื” ืฉืœ ื ื™ื˜ื•ืจ ืžืชื–ืžืŸ ื”ืžืฉื™ืžื•ืช ืฉืœ Windows, ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื—ื•ืžืจ ื‘ืžืืžืจ ื–ื” ื›ื“ื™ ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช, ื”ื—ืœ ืžืชื—ื–ื™ืช ืžื–ื’ ื”ืื•ื•ื™ืจ ื•ืขื“ ืฉืขืจื™ ื”ืžื ื™ื•ืช ื‘ื‘ื•ืจืกื”, ืžื›ื™ื•ื•ืŸ R ืžืืคืฉืจ ืœืš ืœื”ืชื—ื‘ืจ ืœืžืกืคืจ ืขืฆื•ื ืฉืœ ืžืงื•ืจื•ืช ื ืชื•ื ื™ื.

ื‘ืžืืžืจ ื”ื‘ื ื ื‘ื™ืŸ ื›ื™ืฆื“ ืœื”ื•ืกื™ืฃ ืคืงื•ื“ื•ืช ื•ืžืงืœื“ืช ืœื‘ื•ื˜ ื›ืš ืฉื”ื•ื ื™ื•ื›ืœ ืœื ืจืง ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช, ืืœื ื’ื ืœื‘ืฆืข ืคืขื•ืœื•ืช ืžื•ืจื›ื‘ื•ืช ื™ื•ืชืจ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”