ప్రోహోస్టర్ > బ్లాగ్ > పరిపాలన > R లో టెలిగ్రామ్ బాట్ రాయడం (భాగం 1): ఒక బోట్ను సృష్టించడం మరియు టెలిగ్రామ్లో సందేశాలను పంపడానికి దాన్ని ఉపయోగించడం
R లో టెలిగ్రామ్ బాట్ రాయడం (భాగం 1): ఒక బోట్ను సృష్టించడం మరియు టెలిగ్రామ్లో సందేశాలను పంపడానికి దాన్ని ఉపయోగించడం
టెలిగ్రామ్ ప్రేక్షకులు ప్రతిరోజూ విపరీతంగా పెరుగుతున్నారు, ఇది మెసెంజర్ సౌలభ్యం, ఛానెల్లు, చాట్ల ఉనికి మరియు బాట్లను సృష్టించగల సామర్థ్యం ద్వారా సులభతరం చేయబడింది.
బాట్లను మీ కస్టమర్లతో ఆటోమేట్ చేయడం నుండి మీ స్వంత పనులను నిర్వహించడం వరకు పూర్తిగా భిన్నమైన ప్రయోజనాల కోసం ఉపయోగించవచ్చు.
ముఖ్యంగా, మీరు బోట్ ద్వారా ఏదైనా కార్యకలాపాలను నిర్వహించడానికి టెలిగ్రామ్ను ఉపయోగించవచ్చు: డేటాను పంపడం లేదా అభ్యర్థించడం, సర్వర్లో విధులను అమలు చేయడం, డేటాబేస్లో సమాచారాన్ని సేకరించడం, ఇమెయిల్లు పంపడం మొదలైనవి.
నేను ఎలా పని చేయాలో కథనాల శ్రేణిని వ్రాయడానికి ప్లాన్ చేస్తున్నాను టెలిగ్రామ్ బాట్ API, మరియు మీ అవసరాలకు అనుగుణంగా బాట్లను వ్రాయండి.
ఈ మొదటి కథనంలో మేము టెలిగ్రామ్ బాట్ను ఎలా సృష్టించాలో మరియు టెలిగ్రామ్లో నోటిఫికేషన్లను పంపడానికి దాన్ని ఎలా ఉపయోగించాలో కనుగొంటాము.
ఫలితంగా, విండోస్ టాస్క్ షెడ్యూలర్లోని అన్ని టాస్క్ల చివరి ఎగ్జిక్యూషన్ స్థితిని తనిఖీ చేసే బాట్ను మేము కలిగి ఉంటాము మరియు వాటిలో ఏదైనా విఫలమైతే మీకు నోటిఫికేషన్లను పంపుతుంది.
కానీ ఈ కథనాల శ్రేణి యొక్క ఉద్దేశ్యం నిర్దిష్ట, ఇరుకైన పని కోసం బాట్ను ఎలా వ్రాయాలో మీకు నేర్పించడం కాదు, కానీ సాధారణంగా ప్యాకేజీ యొక్క వాక్యనిర్మాణానికి మిమ్మల్ని పరిచయం చేయడం. 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, [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"))).
తర్వాత, మీరు ఫంక్షన్ని ఉపయోగించి ఎన్విరాన్మెంట్ వేరియబుల్లో సేవ్ చేసిన టోకెన్ని ఉపయోగించవచ్చు bot_token(), అనగా ఇలా:
bot <- Bot(token = bot_token("My Test Bot"))
పద్ధతి getUpdates()బాట్ అప్డేట్లను పొందడానికి మమ్మల్ని అనుమతిస్తుంది, అనగా. అతనికి పంపిన సందేశాలు. పద్ధతి from_chat_id(), సందేశం పంపబడిన చాట్ యొక్క IDని పొందడానికి మిమ్మల్ని అనుమతిస్తుంది. బాట్ నుండి సందేశాలను పంపడానికి మాకు ఈ ID అవసరం.
పద్ధతి ద్వారా పొందిన వస్తువు నుండి చాట్ ఐడితో పాటు getUpdates() మీరు కొన్ని ఇతర ఉపయోగకరమైన సమాచారాన్ని కూడా అందుకుంటారు. ఉదాహరణకు, సందేశాన్ని పంపిన వినియోగదారు గురించిన సమాచారం.
కాబట్టి, ఈ దశలో మేము టెలిగ్రామ్కు బోట్ నుండి సందేశాన్ని పంపడానికి అవసరమైన ప్రతిదాన్ని ఇప్పటికే కలిగి ఉన్నాము. పద్ధతిని ఉపయోగించుకుందాం sendMessage(), దీనిలో మీరు చాట్ ID, మెసేజ్ టెక్స్ట్ మరియు మెసేజ్ టెక్స్ట్ మార్కప్ రకాన్ని పాస్ చేయాలి. మార్కప్ రకం మార్క్డౌన్ లేదా HTML కావచ్చు మరియు ఆర్గ్యుమెంట్ ద్వారా సెట్ చేయబడుతుంది parse_mode.
# Отправка сообщения
bot$sendMessage(chat_id,
text = "Привет, *жирный текст* _курсив_",
parse_mode = "Markdown"
)
మార్క్డౌన్ ఫార్మాటింగ్ బేసిక్స్:
బోల్డ్ ఫాంట్ *తో హైలైట్ చేయబడింది:
ఉదాహరణకు: *жирный шритф*
ఫలితం: బోల్డ్ ఫాంట్
ఇటాలిక్లు అండర్స్కోర్ల ద్వారా సూచించబడతాయి:
ఉదాహరణకు: _курсив_
ఫలితం: ఇటాలిక్స్
ప్రోగ్రామ్ కోడ్ని హైలైట్ చేయడానికి సాధారణంగా ఉపయోగించే మోనోస్పేస్ ఫాంట్, అపాస్ట్రోఫీలను ఉపయోగించి పేర్కొనబడింది - `:
ఉదాహరణ: `మోనోస్పేస్ ఫాంట్`
ఫలితం: моноширинный шрифт
HTML మార్కప్ ఫార్మాటింగ్ యొక్క ప్రాథమిక అంశాలు:
HTMLలో, మీరు ట్యాగ్లలో హైలైట్ చేయాల్సిన టెక్స్ట్ భాగాన్ని వ్రాప్ చేస్తారు, ఉదాహరణకు <тег>текст</тег>.
<tag> - ప్రారంభ ట్యాగ్
- ముగింపు ట్యాగ్
HTML మార్కప్ ట్యాగ్లు
<b> - బోల్డ్ ఫాంట్
ఉదాహరణకు: <b>жирный шрифт</b>
ఫలితంగా బోల్డ్ ఫాంట్
<i> - ఇటాలిక్స్
ఉదాహరణకు: <i>курсив</i>
ఫలితం: ఇటాలిక్స్
— моноширинный шрифт
ఉదాహరణ: моноширинный шрифт
ఫలితం: моноширинный шрифт
వచనంతో పాటు, మీరు ప్రత్యేక పద్ధతులను ఉపయోగించి ఇతర కంటెంట్ను పంపవచ్చు:
ఆ. ఉదాహరణకు పద్ధతిని ఉపయోగించడం sendPhoto() మీరు ప్యాకేజీని ఉపయోగించి సృష్టించిన చిత్రంగా సేవ్ చేయబడిన గ్రాఫ్ను పంపవచ్చు ggplot2.
విండోస్ టాస్క్ షెడ్యూలర్ని తనిఖీ చేయడం మరియు అసాధారణంగా ముగించబడిన టాస్క్ల గురించి నోటిఫికేషన్లను పంపడం
విండోస్ టాస్క్ షెడ్యూలర్తో పని చేయడానికి మీరు ప్యాకేజీని ఇన్స్టాల్ చేయాలి taskscheduleR, మరియు డేటాతో పని చేసే సౌలభ్యం కోసం, ప్యాకేజీని ఇన్స్టాల్ చేయండి dplyr.
# Установка пакетов
install.packages(c('taskscheduleR', 'dplyr'))
# Подключение пакетов
library(taskscheduleR)
library(dplyr)
తరువాత, ఫంక్షన్ ఉపయోగించి taskscheduler_ls() మేము మా షెడ్యూలర్ నుండి టాస్క్ల గురించి సమాచారాన్ని అభ్యర్థిస్తాము. ఫంక్షన్ ఉపయోగించి filter() ప్యాకేజీ నుండి dplyr మేము టాస్క్ల జాబితా నుండి విజయవంతంగా పూర్తి చేసిన మరియు చివరి ఫలిత స్థితి 0ని కలిగి ఉన్న వాటిని మరియు ఎప్పుడూ ప్రారంభించబడని మరియు 267011 స్థితిని కలిగి ఉన్న వాటిని, నిలిపివేయబడిన టాస్క్లు మరియు ప్రస్తుతం అమలులో ఉన్న టాస్క్లను తీసివేస్తాము.
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"
)
}
ఎగువ ఉదాహరణను ఉపయోగిస్తున్నప్పుడు, మీ బోట్ టోకెన్ మరియు మీ చాట్ IDని కోడ్లో ప్రత్యామ్నాయం చేయండి.
మీరు టాస్క్లను ఫిల్టర్ చేయడానికి షరతులను జోడించవచ్చు, ఉదాహరణకు, సిస్టమ్ వాటిని మినహాయించి మీరు సృష్టించిన పనులను మాత్రమే తనిఖీ చేయవచ్చు.
మీరు వేర్వేరు కాన్ఫిగరేషన్ ఫైల్లో వివిధ సెట్టింగ్లను కూడా ఉంచవచ్చు మరియు అందులో చాట్ ఐడి మరియు టోకెన్ను నిల్వ చేయవచ్చు. మీరు కాన్ఫిగరేషన్ను చదవవచ్చు, ఉదాహరణకు, ప్యాకేజీని ఉపయోగించి configr.
కాన్ఫిగరేషన్లో ఉదాహరణ
[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 టాస్క్ షెడ్యూలర్ని ఉపయోగించండి, ఉదాహరణకు, ప్రతి అరగంటకు.
తీర్మానం
ఈ వ్యాసంలో, మేము బోట్ను ఎలా సృష్టించాలో మరియు టెలిగ్రామ్లో వివిధ నోటిఫికేషన్లను పంపడానికి దాన్ని ఎలా ఉపయోగించాలో కనుగొన్నాము.
నేను విండోస్ టాస్క్ షెడ్యూలర్ను పర్యవేక్షించే పనిని వివరించాను, అయితే వాతావరణ సూచన నుండి స్టాక్ ఎక్స్ఛేంజ్లో స్టాక్ కోట్ల వరకు ఏదైనా నోటిఫికేషన్లను పంపడానికి మీరు ఈ కథనంలోని మెటీరియల్ని ఉపయోగించవచ్చు, ఎందుకంటే... R మిమ్మల్ని భారీ సంఖ్యలో డేటా సోర్స్లకు కనెక్ట్ చేయడానికి అనుమతిస్తుంది.
తదుపరి కథనంలో, బాట్కు ఆదేశాలు మరియు కీబోర్డ్ను ఎలా జోడించాలో మేము కనుగొంటాము, తద్వారా ఇది నోటిఫికేషన్లను పంపడమే కాకుండా మరింత క్లిష్టమైన చర్యలను కూడా చేయగలదు.