R-เตฝ เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดŽเดดเตเดคเตเดจเตเดจเต (เดญเดพเด—เด‚ 1): เด’เดฐเต เดฌเต‹เดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเตฝ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเตป เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดชเตเดฐเต‡เด•เตเดทเด•เตผ เด…เดจเตเดฆเดฟเดจเด‚ เด•เตเดฐเดฎเดพเดคเต€เดคเดฎเดพเดฏเดฟ เดตเดณเดฐเตเด•เดฏเดพเดฃเต, เดฎเต†เดธเดžเตเดšเดฑเดฟเดจเตเดฑเต† เดธเต—เด•เดฐเตเดฏเด‚, เดšเดพเดจเดฒเตเด•เดณเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚, เดšเดพเดฑเตเดฑเตเด•เตพ, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดฌเต‹เดŸเตเดŸเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดŽเดจเตเดจเดฟเดตเดฏเดพเตฝ เด‡เดคเต เดธเตเด—เดฎเดฎเดพเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด‰เดชเดญเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดฎเดพเดฏเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฎเตเดคเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดœเต‹เดฒเดฟเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเดฐเต† เดคเดฟเด•เดšเตเดšเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดฌเต‹เดŸเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.

เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เด’เดฐเต เดฌเต‹เดŸเตเดŸเดฟเดฒเต‚เดŸเต† เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เดจเดŸเดคเตเดคเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚: เดกเดพเดฑเตเดฑ เด…เดฏเดฏเตเด•เตเด•เตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เตเด•, เดธเต†เตผเดตเดฑเดฟเตฝ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•, เด’เดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดตเดฐเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•, เด‡เดฎเต†เดฏเดฟเดฒเตเด•เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเด• เดคเตเดŸเด™เตเด™เดฟเดฏเดต.

เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฃเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฒเต‡เด–เดจเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดชเดฐเดฎเตเดชเดฐ เดŽเดดเตเดคเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต API, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดฌเต‹เดŸเตเดŸเตเด•เตพ เดŽเดดเตเดคเตเด•.

R-เตฝ เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดŽเดดเตเดคเตเดจเตเดจเต (เดญเดพเด—เด‚ 1): เด’เดฐเต เดฌเต‹เดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเตฝ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเตป เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดˆ เด†เดฆเตเดฏ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดŽเด™เตเด™เดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเตฝ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป เด…เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚.

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดตเดฟเตปเดกเต‹เดธเต เดŸเดพเดธเตโ€Œเด•เต เดทเต†เดกเตเดฏเต‚เดณเดฑเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดธเดพเดจ เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดจเดฟเดฒ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฌเต‹เดŸเตเดŸเต เดžเด™เตเด™เตพเด•เตเด•เตเดฃเตเดŸเดพเด•เตเด‚, เด…เดตเดฏเดฟเดฒเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเด‚.

เดŽเดจเตเดจเดพเตฝ เดˆ เดฒเต‡เด–เดจ เดชเดฐเดฎเตเดชเดฐเดฏเตเดŸเต† เด‰เดฆเตเดฆเต‡เดถเตเดฏเด‚ เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ, เด‡เดŸเตเด™เตเด™เดฟเดฏ เดŸเดพเดธเตโ€Œเด•เตเด•เดฟเดจเดพเดฏเดฟ เด’เดฐเต เดฌเต‹เดŸเตเดŸเต เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเดพเดฎเต†เดจเตเดจเต เดจเดฟเด™เตเด™เดณเต† เดชเด เดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เดณเต† เดชเตŠเดคเตเดตเต† เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเด• เดŽเดจเตเดจเดคเดพเดฃเต. telegram.bot, เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เดฌเต‹เดŸเตเดŸเตเด•เตพ เดŽเดดเตเดคเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด•เต‹เดกเต เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ.

เด‰เดณเตเดณเดŸเด•เตเด•เด‚

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเดพเดฑเตเดฑ เดตเดฟเดถเด•เดฒเดจเดคเตเดคเดฟเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดจเตเดฑเต† เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเด•เดพเด‚ เดŸเต†เดฒเด—เตเดฐเดพเด‚ ะธ YouTube เดšเดพเดจเดฒเตเด•เตพ. เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเดจเตเดฑเต† เดญเต‚เดฐเดฟเดญเดพเด—เดตเตเด‚ R เดญเดพเดทเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดธเดฎเตผเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

  1. เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต
  2. R-เตฝ เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด’เดฐเต เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต
  3. R-เตฝ เดจเดฟเดจเตเดจเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเดฒเต‡เด•เตเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต
  4. เดŸเดพเดธเตโ€Œเด•เต เดธเตเด•เดพเดจเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดทเต†เดกเตเดฏเต‚เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
  5. เดคเต€เดฐเตเดฎเดพเดจเด‚

เด’เดฐเต เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดฌเต‹เดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เด†เดฆเตเดฏเด‚ เดจเดฎเตเดฎเตพ เด’เดฐเต เดฌเต‹เดŸเตเดŸเต เด‰เดฃเตเดŸเดพเด•เตเด•เดฃเด‚. เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฌเต‹เดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฌเต‹เดŸเตเดŸเตเดซเดพเดฆเตผ, เดชเต‹เด•เตเด• เดฒเดฟเด™เตเด•เต เดฌเต‹เดŸเตเดŸเดฟเดจเต เดŽเดดเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด• /start.

เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดฎเดพเตปเดกเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด‰เดณเตเดณ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚:

เดฌเต‹เดŸเตเดŸเตเดซเดพเดฆเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด‚

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, [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-เดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ 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("~")) เดชเต‡เดฐเตเดณเตเดณ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดซเดฏเตฝ .เดฑเต†เตปเดตเดฟเดฑเต‹เตบ. เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ 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(), เด…เดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพ เดšเดพเดฑเตเดฑเต เดเดกเดฟ, เดธเดจเตเดฆเต‡เดถ เดตเดพเดšเด•เด‚, เดธเดจเตเดฆเต‡เดถ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดฎเดพเตผเด•เตเด•เตเด…เดชเตเดชเต เดคเดฐเด‚ เดŽเดจเตเดจเดฟเดต เด•เตˆเดฎเดพเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดฎเดพเตผเด•เตเด•เตเด…เดชเตเดชเต เดคเดฐเด‚ เดฎเดพเตผเด•เตเด•เตเดกเต—เตบ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 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.

เดตเดฟเตปเดกเต‹เดธเต เดŸเดพเดธเตเด•เต เดทเต†เดกเตเดฏเต‚เดณเตผ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต เด…เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏเดฟ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดšเตเดš เดŸเดพเดธเตเด•เตเด•เตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต

เดตเดฟเตปเดกเต‹เดธเต เดŸเดพเดธเตเด•เต เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต 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 เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

[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 เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดคเตเดคเต เดŽเดดเตเดคเตเด•; เดตเดฟเตปเดกเต‹เดธเดฟเตฝ, เดชเดพเดคเตเดคเต เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚: C:Program FilesRR-4.0.2bin.
  2. เด’เดฐเต เดฒเตˆเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดฌเดพเดฑเตเดฑเต เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• R CMD BATCH C:rscriptscheck_botcheck_bot.R. เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด• C:rscriptscheck_botcheck_bot.R เดจเดฟเด™เตเด™เดณเตเดŸเต† R เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเต‚เตผเดฃเตเดฃ เดชเดพเดคเดฏเดฟเดฒเต‡เด•เตเด•เต.
  3. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เด’เดฐเต เดฒเต‹เดžเตเดšเต เดทเต†เดกเตเดฏเต‚เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดตเดฟเตปเดกเต‹เดธเต เดŸเดพเดธเตเด•เต เดทเต†เดกเตเดฏเต‚เดณเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด“เดฐเต‹ เด…เดฐ เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดฒเตเด‚.

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เด’เดฐเต เดฌเต‹เดŸเตเดŸเต เดŽเด™เตเด™เดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดŸเต†เดฒเดฟเด—เตเดฐเดพเดฎเดฟเตฝ เดตเดฟเดตเดฟเดง เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป เด…เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ.

เดตเดฟเตปเดกเต‹เดธเต เดŸเดพเดธเตเด•เต เดทเต†เดกเตเดฏเต‚เดณเตผ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดšเตเดฎเดคเดฒ เดžเดพเตป เดตเดฟเดตเดฐเดฟเดšเตเดšเต, เดŽเดจเตเดจเดพเตฝ เด•เดพเดฒเดพเดตเดธเตเดฅเดพ เดชเตเดฐเดตเดšเดจเด‚ เดฎเตเดคเตฝ เดธเตเดฑเตเดฑเต‹เด•เตเด•เต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเดฟเดฒเต† เดธเตเดฑเตเดฑเต‹เด•เตเด•เต เด‰เดฆเตเดงเดฐเดฃเดฟเด•เตพ เดตเดฐเต† เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดฒเต† เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดงเดพเดฐเดพเดณเด‚ เดกเดพเดฑเตเดฑ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป R เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดฌเต‹เดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด•เดฎเดพเตปเดกเตเด•เดณเตเด‚ เด’เดฐเต เด•เต€เดฌเต‹เตผเดกเตเด‚ เดŽเด™เตเด™เดจเต† เดšเต‡เตผเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚, เด…เดคเตเดตเดดเดฟ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดจเดŸเดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•