புரோஹோஸ்டர் > Блог > நிர்வாகம் > R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 1): ஒரு போட்டை உருவாக்கி அதை பயன்படுத்தி தந்தியில் செய்திகளை அனுப்புதல்
R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 1): ஒரு போட்டை உருவாக்கி அதை பயன்படுத்தி தந்தியில் செய்திகளை அனுப்புதல்
டெலிகிராம் பார்வையாளர்கள் ஒவ்வொரு நாளும் அதிவேகமாக வளர்ந்து வருகின்றனர், இது தூதரின் வசதி, சேனல்கள், அரட்டைகள் மற்றும் போட்களை உருவாக்கும் திறன் ஆகியவற்றால் எளிதாக்கப்படுகிறது.
உங்கள் வாடிக்கையாளர்களுடனான தகவல்தொடர்புகளை தானியங்குபடுத்துவது முதல் உங்கள் சொந்த பணிகளை நிர்வகிப்பது வரை முற்றிலும் வேறுபட்ட நோக்கங்களுக்காக போட்களைப் பயன்படுத்தலாம்.
அடிப்படையில், நீங்கள் ஒரு போட் மூலம் எந்த செயல்பாடுகளையும் செய்ய டெலிகிராமைப் பயன்படுத்தலாம்: தரவை அனுப்புதல் அல்லது கோருதல், சேவையகத்தில் பணிகளை இயக்குதல், தரவுத்தளத்தில் தகவல்களைச் சேகரித்தல், மின்னஞ்சல்களை அனுப்புதல் மற்றும் பல.
எப்படி வேலை செய்வது என்பது குறித்த தொடர் கட்டுரைகளை எழுத திட்டமிட்டுள்ளேன் டெலிகிராம் பாட் ஏபிஐ, மற்றும் உங்கள் தேவைகளுக்கு ஏற்றவாறு போட்களை எழுதுங்கள்.
இந்த முதல் கட்டுரையில், டெலிகிராம் போட்டை எவ்வாறு உருவாக்குவது மற்றும் டெலிகிராமில் அறிவிப்புகளை அனுப்ப அதை எவ்வாறு பயன்படுத்துவது என்பதைக் கண்டுபிடிப்போம்.
இதன் விளைவாக, Windows Task Scheduler இல் உள்ள அனைத்து பணிகளின் கடைசி செயல்பாட்டின் நிலையை சரிபார்க்கும் ஒரு போட் எங்களிடம் இருக்கும், மேலும் அவற்றில் ஏதேனும் தோல்வியுற்றால் உங்களுக்கு அறிவிப்புகளை அனுப்பும்.
ஆனால் இந்தக் கட்டுரைத் தொடரின் நோக்கம், ஒரு குறிப்பிட்ட, குறுகிய பணிக்கு ஒரு போட் எழுதுவது எப்படி என்பதை உங்களுக்குக் கற்பிப்பது அல்ல, ஆனால் பொதுவாக தொகுப்பின் தொடரியல் உங்களுக்கு அறிமுகப்படுத்துவது. telegram.bot, மற்றும் உங்கள் சொந்த பிரச்சனைகளை தீர்க்க போட்களை எழுதக்கூடிய குறியீடு எடுத்துக்காட்டுகள்.
உள்ளடக்கம்
நீங்கள் தரவு பகுப்பாய்வில் ஆர்வமாக இருந்தால், நீங்கள் என் மீது ஆர்வமாக இருக்கலாம் தந்தி и YouTube சேனல்கள். பெரும்பாலான உள்ளடக்கம் R மொழிக்கு அர்ப்பணிக்கப்பட்டுள்ளது.
முதலில், நாம் ஒரு போட் உருவாக்க வேண்டும். இது ஒரு சிறப்பு போட் மூலம் செய்யப்படுகிறது போட்ஃபெதர், செல்ல இணைப்பை மற்றும் போட்க்கு எழுதவும் /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, 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 டோக்கன் தேவைப்படும், எனது எடுத்துக்காட்டில் அது 123456789:abcdefghijklmnopqrstuvwxyz.
இந்த கட்டத்தில், பாட் உருவாக்குவதற்கான ஆயத்த வேலை முடிந்தது.
R இல் டெலிகிராம் போட்டுடன் பணிபுரிய ஒரு தொகுப்பை நிறுவுதல்
நீங்கள் ஏற்கனவே R மொழி மற்றும் RStudio மேம்பாட்டு சூழலை நிறுவியுள்ளீர்கள் என்று கருதுகிறேன். இது இல்லை என்றால், நீங்கள் இதைப் பார்க்கலாம் வீடியோ பாடம் அவற்றை எவ்வாறு நிறுவுவது என்பது பற்றி.
Telegram Bot API உடன் பணிபுரிய R தொகுப்பைப் பயன்படுத்துவோம் telegram.bot.
R இல் தொகுப்புகளை நிறுவுவது செயல்பாட்டைப் பயன்படுத்தி செய்யப்படுகிறது install.packages(), எனவே நமக்கு தேவையான தொகுப்பை நிறுவ, கட்டளையைப் பயன்படுத்தவும் install.packages("telegram.bot").
பல்வேறு தொகுப்புகளை நிறுவுவது பற்றி மேலும் அறியலாம் இந்த வீடியோ.
தொகுப்பை நிறுவிய பின், நீங்கள் அதை இணைக்க வேண்டும்:
library(telegram.bot)
ஆர் இலிருந்து டெலிகிராமிற்கு செய்திகளை அனுப்புகிறது
நீங்கள் உருவாக்கிய போட் உருவாக்கத்தின் போது குறிப்பிடப்பட்ட உள்நுழைவைப் பயன்படுத்தி டெலிகிராமில் காணலாம், என் விஷயத்தில் அது @my_test_bot.
"Hey 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"))).
அடுத்து, செயல்பாட்டைப் பயன்படுத்தி சூழல் மாறியில் சேமிக்கப்பட்ட டோக்கனைப் பயன்படுத்தலாம் bot_token(), அதாவது இது போன்ற:
bot <- Bot(token = bot_token("My Test Bot"))
முறை getUpdates()போட் புதுப்பிப்புகளைப் பெற அனுமதிக்கிறது, அதாவது. அவருக்கு அனுப்பப்பட்ட செய்திகள். முறை from_chat_id(), செய்தி அனுப்பப்பட்ட அரட்டையின் ஐடியைப் பெற உங்களை அனுமதிக்கிறது. போட்டில் இருந்து செய்திகளை அனுப்ப இந்த ஐடி தேவை.
முறை மூலம் பெறப்பட்ட பொருளில் இருந்து அரட்டை ஐடி கூடுதலாக getUpdates() நீங்கள் வேறு சில பயனுள்ள தகவல்களையும் பெறுவீர்கள். எடுத்துக்காட்டாக, செய்தியை அனுப்பிய பயனரைப் பற்றிய தகவல்.
எனவே, இந்த கட்டத்தில், ஒரு போட்டில் இருந்து டெலிகிராமிற்கு ஒரு செய்தியை அனுப்ப வேண்டிய அனைத்தும் ஏற்கனவே எங்களிடம் உள்ளன. முறையைப் பயன்படுத்துவோம் sendMessage(), இதில் நீங்கள் அரட்டை ஐடி, செய்தி உரை மற்றும் செய்தி உரை மார்க்அப் வகையை அனுப்ப வேண்டும். மார்க்அப் வகை மார்க் டவுன் அல்லது HTML ஆக இருக்கலாம் மற்றும் வாதத்தால் அமைக்கப்படும் parse_mode.
# Отправка сообщения
bot$sendMessage(chat_id,
text = "Привет, *жирный текст* _курсив_",
parse_mode = "Markdown"
)
மார்க் டவுன் வடிவமைப்பு அடிப்படைகள்:
தடிமனான எழுத்துரு *:
உதாரணம்: *жирный шритф*
முடிவு: தடித்த எழுத்துரு
சாய்வுகள் அடிக்கோடிட்டுக் காட்டப்படுகின்றன:
உதாரணம்: _курсив_
முடிவு: சாய்வு
நிரல் குறியீட்டை முன்னிலைப்படுத்த வழக்கமாகப் பயன்படுத்தப்படும் மோனோஸ்பேஸ் எழுத்துரு, அபோஸ்ட்ரோபிகளைப் பயன்படுத்தி குறிப்பிடப்படுகிறது - `:
உதாரணம்: `மோனோஸ்பேஸ் எழுத்துரு`
முடிவு: моноширинный шрифт
HTML மார்க்அப்பை வடிவமைப்பதற்கான அடிப்படைகள்:
HTML இல், குறிச்சொற்களில் முன்னிலைப்படுத்த வேண்டிய உரையின் பகுதியை நீங்கள் போர்த்துகிறீர்கள், எடுத்துக்காட்டாக <тег>текст</тег>.
<tag> - தொடக்க குறிச்சொல்
- மூடும் குறிச்சொல்
HTML மார்க்அப் குறிச்சொற்கள்
<b> - தடித்த எழுத்துரு
உதாரணம்: <b>жирный шрифт</b>
விளைவாக தடித்த எழுத்துரு
<i> - சாய்வு
உதாரணம்: <i>курсив</i>
முடிவு: சாய்வு
— моноширинный шрифт
உதாரணம்: моноширинный шрифт
முடிவு: моноширинный шрифт
உரைக்கு கூடுதலாக, நீங்கள் சிறப்பு முறைகளைப் பயன்படுத்தி பிற உள்ளடக்கத்தை அனுப்பலாம்:
அந்த. எடுத்துக்காட்டாக, முறையைப் பயன்படுத்துதல் 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 இப்போது எங்களிடம் தோல்வியுற்ற பணிகளின் பட்டியல் உள்ளது, இந்த பட்டியலை டெலிகிராமிற்கு அனுப்ப வேண்டும்.
ஒவ்வொரு கட்டளையையும் இன்னும் விரிவாகப் பார்த்தால், பின்:
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 இல் உள்ள ஒரு கட்டமைப்பிலிருந்து மாறிகளை வாசிப்பதற்கான எடுத்துக்காட்டு
ஒரு அட்டவணையில் ஸ்கிரிப்ட்களின் வெளியீட்டை அமைக்கும் செயல்முறை இதில் இன்னும் விரிவாக விவரிக்கப்பட்டுள்ளது கட்டுரை. இதற்கு பின்பற்ற வேண்டிய வழிமுறைகளை மட்டும் இங்கு விவரிக்கிறேன். ஏதேனும் படிநிலைகள் உங்களுக்கு தெளிவாக இல்லை என்றால், நான் இணைப்பை வழங்கிய கட்டுரையைப் பார்க்கவும்.
நமது போட் குறியீட்டை ஒரு கோப்பில் சேமித்தோம் என்று வைத்துக் கொள்வோம் check_bot.R. இந்தக் கோப்பைத் தொடர்ந்து இயக்க திட்டமிட, இந்தப் படிகளைப் பின்பற்றவும்:
பாதை அமைப்பு மாறியில் R நிறுவப்பட்ட கோப்புறைக்கான பாதையை எழுதவும்; விண்டோஸில், பாதை இப்படி இருக்கும்: C:Program FilesRR-4.0.2bin.
ஒரே ஒரு வரியில் இயங்கக்கூடிய பேட் கோப்பை உருவாக்கவும் R CMD BATCH C:rscriptscheck_botcheck_bot.R. மாற்றவும் C:rscriptscheck_botcheck_bot.R உங்கள் R கோப்பிற்கான முழு பாதைக்கு.
அடுத்து, ஒரு வெளியீட்டு அட்டவணையை அமைக்க Windows Task Scheduler ஐப் பயன்படுத்தவும், எடுத்துக்காட்டாக, ஒவ்வொரு அரை மணி நேரத்திற்கும்.
முடிவுக்கு
இந்த கட்டுரையில், ஒரு போட்டை எவ்வாறு உருவாக்குவது மற்றும் டெலிகிராமில் பல்வேறு அறிவிப்புகளை அனுப்ப அதை எவ்வாறு பயன்படுத்துவது என்பதைக் கண்டுபிடித்தோம்.
விண்டோஸ் டாஸ்க் ஷெட்யூலரைக் கண்காணிக்கும் பணியை நான் விவரித்தேன், ஆனால் வானிலை முன்னறிவிப்பு முதல் பங்குச் சந்தையில் பங்கு மேற்கோள்கள் வரை எந்த அறிவிப்புகளையும் அனுப்ப இந்தக் கட்டுரையில் உள்ள பொருளைப் பயன்படுத்தலாம். R ஆனது அதிக எண்ணிக்கையிலான தரவு மூலங்களுடன் இணைக்க உங்களை அனுமதிக்கிறது.
அடுத்த கட்டுரையில், கட்டளைகள் மற்றும் விசைப்பலகையை போட்க்கு எவ்வாறு சேர்ப்பது என்பதைக் கண்டுபிடிப்போம், இதனால் அறிவிப்புகளை அனுப்புவது மட்டுமல்லாமல், மிகவும் சிக்கலான செயல்களையும் செய்ய முடியும்.