Ke kākau ʻana i kahi bot telegram ma R (mahele 1): Ke hana ʻana i kahi bot a hoʻohana iā ia e hoʻouna i nā leka ma ke kelepona.

Ke ulu nui nei ka lehulehu Telegram i kēlā me kēia lā, hoʻomaʻamaʻa ʻia kēia e ka ʻoluʻolu o ka ʻelele, ka hele ʻana o nā kahawai, nā kamaʻilio, a me ka hiki ke hana i nā bots.

Hiki ke hoʻohana ʻia nā bots no nā kumu like ʻole, mai ka hoʻokaʻawale ʻana i nā kamaʻilio me kāu mea kūʻai aku i ka hoʻokele ʻana i kāu mau hana ponoʻī.

ʻO ka mea nui, hiki iā ʻoe ke hoʻohana i ka telegram e hana i nā hana ma o ka bot: hoʻouna a noi i ka ʻikepili, holo i nā hana ma ke kikowaena, hōʻiliʻili i ka ʻike i loko o kahi waihona, hoʻouna i nā leka uila, a pēlā aku.

Hoʻolālā wau e kākau i nā ʻatikala e pili ana i ka hana ʻana telegram bot API, a kākau i nā bots e kūpono i kāu mau pono.

Ke kākau ʻana i kahi bot telegram ma R (mahele 1): Ke hana ʻana i kahi bot a hoʻohana iā ia e hoʻouna i nā leka ma ke kelepona.

Ma kēia ʻatikala mua mākou e noʻonoʻo ai pehea e hana ai i kahi bot telegram a hoʻohana iā ia e hoʻouna i nā leka hoʻomaopopo ma ke telegram.

ʻO ka hopena, e loaʻa iā mākou kahi bot e nānā i ke kūlana o ka hoʻokō hope loa o nā hana āpau i ka Windows Task Scheduler, a hoʻouna iā ʻoe i nā leka hoʻomaopopo inā hāʻule kekahi o lākou.

Akā ʻo ke kumu o kēia ʻatikala ʻaʻole ia e aʻo iā ʻoe pehea e kākau ai i kahi bot no kahi hana kikoʻī, haiki, akā e hoʻolauna maʻamau iā ʻoe i ka syntax o ka pūʻolo. telegram.bot, a me nā laʻana code e hiki ai iā ʻoe ke kākau i nā bots e hoʻoponopono i kāu mau pilikia ponoʻī.

Nā mea

Inā makemake ʻoe i ka ʻikepili ʻikepili, makemake paha ʻoe i kaʻu telegram и Ukulele nā kahawai. Hoʻolaʻa ʻia ka hapa nui o nā mea i ka ʻōlelo R.

  1. Ke hana ʻana i kahi bot telegram
  2. Ke kau ʻana i kahi pūʻolo no ka hana ʻana me kahi bot telegram ma R
  3. Ka hoʻouna ʻana i nā memo mai R i Telegram
  4. Hoʻonohonoho i kahi papa hana no ka holo ʻana i nā hana scans
  5. hopena

Ke hana ʻana i kahi bot telegram

ʻO ka mea mua, pono mākou e hana i kahi bot. Hana ʻia kēia me ka hoʻohana ʻana i kahi bot kūikawā Hoike, e hele loulou a kākau i ka bot /start.

A laila e loaʻa iā ʻoe kahi memo me kahi papa inoa o nā kauoha:

ʻŌlelo mai 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

No ka hana ʻana i ka bot hou, e hoʻouna i ke kauoha /newbot.

E noi ʻo BotFather iā ʻoe e hoʻokomo i ka inoa o ka bot a me ka hoʻopaʻa inoa.

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

Hiki iā ʻoe ke hoʻokomo i kekahi inoa, akā pono e hoʻopau ʻia ka inoa inoa bot.

Inā hana pololei ʻoe i nā mea āpau, e loaʻa iā ʻoe kēia memo:

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

A laila pono ʻoe i ka hōʻailona API i loaʻa, ma kaʻu hiʻohiʻona 123456789:abcdefghijklmnopqrstuvwxyz.

Ma kēia ʻanuʻu, ua pau ka hana hoʻomākaukau no ka hana ʻana i ka bot.

Ke kau ʻana i kahi pūʻolo no ka hana ʻana me kahi bot telegram ma R

Manaʻo wau ua loaʻa iā ʻoe ka ʻōlelo R a me ke kaiapuni hoʻomohala RStudio i hoʻokomo ʻia. Inā ʻaʻole kēia ka hihia, a laila hiki iā ʻoe ke nānā i kēia kumu aʻo wikiō pehea e hoʻouka ai iā lākou.

E hana me ka Telegram Bot API e hoʻohana mākou i ka pūʻolo R telegram.bot.

Hoʻokomo ʻia nā pūʻolo ma R me ka hoʻohana ʻana i ka hana install.packages(), no laila e hoʻokomo i ka pūʻolo e pono ai mākou, e hoʻohana i ke kauoha install.packages("telegram.bot").

Hiki iā ʻoe ke aʻo hou e pili ana i ka hoʻokomo ʻana i nā pūʻolo like ʻole mai keia wikiō.

Ma hope o ka hoʻokomo ʻana i ka pūʻolo, pono ʻoe e hoʻopili iā ia:

library(telegram.bot)

Ka hoʻouna ʻana i nā memo mai R i Telegram

Hiki ke loaʻa ka bot āu i hana ai ma Telegram me ka hoʻohana ʻana i ka login i ʻōlelo ʻia i ka wā o ka hana ʻana, i koʻu hihia @my_test_bot.

E hoʻouna i ka bot i kekahi memo, e like me "Hey bot." I kēia manawa, pono mākou i kēia i mea e loaʻa ai ka id o kāu kamaʻilio me ka bot.

I kēia manawa, kākau mākou i kēia code ma R.

library(telegram.bot)

# создаём экземпляр бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")

# Запрашиваем информацию о боте
print(bot$getMe())

# Получаем обновления бота, т.е. список отправленных ему сообщений
updates <- bot$getUpdates()

# Запрашиваем идентификатор чата
# Примечание: перед запросом обновлений вы должны отправить боту сообщение
chat_id <- updates[[1L]]$from_chat_id()

I ka hoʻomaka, hana mākou i kahi hiʻohiʻona o kā mākou bot me ka hana Bot(), pono e hoʻoili ʻia ka hōʻailona i loaʻa mua ma ke ʻano he hoʻopaʻapaʻa.

ʻAʻole i manaʻo ʻia he hana maikaʻi loa ka mālama ʻana i ka hōʻailona ma ke code, no laila hiki iā ʻoe ke mālama iā ia i loko o kahi loli kaiapuni a heluhelu mai ia mea. Ma ka paʻamau i ka pūʻolo telegram.bot Ua hoʻokō ʻia ke kākoʻo no nā ʻano hoʻololi kaiapuni o kēia mau inoa: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА... Ma kahi o ИМЯ_ВАШЕГО_БОТА e hoʻololi i ka inoa āu i kuhikuhi ai i ka wā e hana ai, i koʻu hihia he ʻano hoʻololi ia R_TELEGRAM_BOT_My Test Bot.

Nui nā ala e hana ai i kahi ʻano hoʻololi kaiapuni; E haʻi wau iā ʻoe e pili ana i ka honua ākea a me ka cross-platform. E hana i kāu papa kuhikuhi home (hiki iā ʻoe ke loaʻa me ka hoʻohana ʻana i ke kauoha path.expand("~")) waihona kikokikona me ka inoa .Kaiapuni. Hiki iā ʻoe ke hana i kēia me ke kauoha file.edit(path.expand(file.path("~", ".Renviron"))).

A e hoʻohui i kēia laina i laila.

R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА=123456789:abcdefghijklmnopqrstuvwxyz

Ma hope aʻe, hiki iā ʻoe ke hoʻohana i ka hōʻailona i mālama ʻia i ka hoʻololi kaiapuni me ka hoʻohana ʻana i ka hana bot_token(), i.e. e like me kēia:

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

Palapala getUpdates()hiki iā mākou ke loaʻa nā hōʻano bot, ʻo ia hoʻi. nā leka i hoʻouna ʻia iā ia. ʻano hana from_chat_id(), hiki iā ʻoe ke kiʻi i ka ID o ke kamaʻilio kahi i hoʻouna ʻia ai ka leka. Pono mākou i kēia ID e hoʻouna i nā memo mai ka bot.

Ma waho aʻe o ke kamaʻilio id mai ka mea i loaʻa ma ke ʻano getUpdates() loaʻa iā ʻoe kekahi ʻike pono ʻē aʻe. No ka laʻana, ʻike e pili ana i ka mea hoʻohana nāna i hoʻouna i ka leka.

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"

No laila, i kēia manawa ua loaʻa iā mākou nā mea āpau e pono ai mākou e hoʻouna i kahi leka mai kahi bot i Telegram. E hoʻohana kākou i ke ʻano sendMessage(), kahi e pono ai ʻoe e hāʻawi i ka ID kamaʻilio, ka kikokikona memo, a me ke ʻano hōʻailona kikokikona memo. Hiki i ke ʻano markup ke Markdown a i ʻole HTML a hoʻonohonoho ʻia e ka hoʻopaʻapaʻa parse_mode.

# Отправка сообщения
bot$sendMessage(chat_id,
                text = "Привет, *жирный текст* _курсив_",
                parse_mode = "Markdown"
)

Nā kumu kumu o ka hoʻopololei ʻana:

  • Hōʻike ʻia ka moʻo momona me *:
    • hiʻohiʻona: *жирный шритф*
    • hopena: momoku wiwo ole
  • Hōʻike ʻia nā kikoʻī e nā kaha lalo:
    • hiʻohiʻona: _курсив_
    • hopena: ihuki
  • ʻO ka monospace font, ka mea maʻamau i hoʻohana ʻia e hōʻailona i ka code program, ua kuhikuhi ʻia me ka hoʻohana ʻana i nā apostropes - `:
    • laʻana: `monospace font`
    • hopena: моноширинный шрифт

Nā kumu o ka hōʻano ʻana i ka hōʻailona HTML:
I ka HTML, hoʻopili ʻoe i ka ʻāpana o ka kikokikona e pono e hōʻike ʻia i nā tag, laʻana <тег>текст</тег>.

  • <tag> - hōʻailona wehe
  • - pani pani

Nā hōʻailona HTML

  • <b> - kikokikona wiwo ʻole
    • hiʻohiʻona: <b>жирный шрифт</b>
    • ka hopena momoku wiwo ole
  • <i> - italic
    • hiʻohiʻona: <i>курсив</i>
    • hopena: ihuki
  • — моноширинный шрифт
    • laʻana: моноширинный шрифт
    • hopena: моноширинный шрифт

Ma waho aʻe o ka kikokikona, hiki iā ʻoe ke hoʻouna i nā ʻike ʻē aʻe me ka hoʻohana ʻana i nā ala kūikawā:

# Отправить изображение
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"
)

ʻO kēlā mau. no ka laʻana me ka hoʻohana ʻana i ke ʻano sendPhoto() hiki iā ʻoe ke hoʻouna i kahi pakuhi i mālama ʻia ma ke ʻano he kiʻi āu i hana ai me ka hoʻohana ʻana i ka pūʻolo ggplot2.

Ke nānā nei i ka Windows Task Scheduler a me ka hoʻouna ʻana i nā leka e pili ana i nā hana i hoʻopau ʻole ʻia

No ka hana pū me Windows Task Scheduler pono ʻoe e hoʻokomo i ka pūʻolo taskscheduleR, a no ka maʻalahi o ka hana ʻana me ka ʻikepili, e hoʻokomo i ka pūʻolo dplyr.

# Установка пакетов
install.packages(c('taskscheduleR', 'dplyr'))
# Подключение пакетов
library(taskscheduleR)
library(dplyr)

A laila, e hoʻohana i ka hana taskscheduler_ls() noi mākou i ka ʻike e pili ana i nā hana mai kā mākou mea hoʻonohonoho. Ke hoʻohana nei i ka hana filter() mai ka pūʻolo dplyr Wehe mākou mai ka papa inoa o nā hana i hoʻopau maikaʻi ʻia a loaʻa ke kūlana hopena hope o 0, a me nā mea i hoʻomaka ʻole ʻia a loaʻa ke kūlana o 267011, nā hana kīnā, a me nā hana e holo nei i kēia manawa.

# запрашиваем список задач
task <- task <- taskscheduler_ls() %>%
        filter(! `Last Result`  %in% c("0", "267011") & 
               `Scheduled Task State` == "Enabled" & 
               Status != "Running") %>%
        select(TaskName) %>%
        unique() %>%
        unlist() %>%
        paste0(., collapse = "n")

I ka mea task Loaʻa iā mākou kahi papa inoa o nā hana i hāʻule, pono mākou e hoʻouna i kēia papa inoa i Telegram.

Inā mākou e nānā pono i kēlā me kēia kauoha, a laila:

  • filter() - kānana i ka papa inoa o nā hana e like me nā kūlana i hōʻike ʻia ma luna
  • select() - waiho wale i hoʻokahi kahua ma ka papaʻaina me ka inoa o nā hana
  • unique() - wehe i nā inoa ʻelua
  • unlist() - hoʻololi i ke kolamu papa i koho ʻia i vector
  • paste0() - hoʻohui i nā inoa o nā hana i hoʻokahi laina, a kau i kahi hānai laina ma ke ʻano he mea hoʻokaʻawale, ʻo ia hoʻi. n.

ʻO ka mea i koe iā mākou, ʻo ia ka hoʻouna ʻana i kēia hopena ma ke kelepona.

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

No laila, i kēia manawa ua like ke ʻano o ka code bot:

Code bot loiloi hana

# Подключение пакета
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"
  )

}

Ke hoʻohana nei i ka laʻana ma luna, e hoʻololi i kāu hōʻailona bot a me kāu ID kamaʻilio i loko o ke code.

Hiki iā ʻoe ke hoʻohui i nā kūlana no ka kānana ʻana i nā hana, no ka laʻana, nānā wale i kēlā mau hana āu i hana ai, me ka ʻole o nā ʻōnaehana.

Hiki iā ʻoe ke hoʻokomo i nā hoʻonohonoho like ʻole i kahi faila hoʻonohonoho ʻokoʻa, a mālama i ke kamaʻilio id a me ka hōʻailona i loko. Hiki iā ʻoe ke heluhelu i ka config, no ka laʻana, me ka hoʻohana ʻana i ka pā configr.

Laʻana kēia config

[telegram_bot]
;настройки телеграм бота и чата, в который будут приходить уведомления
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"

ʻO kahi hiʻohiʻona o ka heluhelu ʻana i nā loli mai kahi config ma 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

Hoʻonohonoho i kahi papa hana no ka holo ʻana i nā hana scans

ʻO ke kaʻina hana o ka hoʻonohonoho ʻana i ka hoʻomaka ʻana o nā palapala ma kahi papa manawa i wehewehe ʻia ma kēia 'ōlelo. Ma ʻaneʻi wau e wehewehe wale i nā ʻanuʻu e pono ai ke hahai ʻia no kēia. Inā ʻaʻole maopopo iā ʻoe kekahi o nā ʻanuʻu, a laila e nānā i ka ʻatikala aʻu i hāʻawi ai i kahi loulou.

E manaʻo mākou ua mālama mākou i kā mākou code bot i kahi faila check_bot.R. No ka hoʻonohonoho ʻana i kēia faila e holo mau, e hahai i kēia mau ʻanuʻu:

  1. Kākau i ke ala i ka waihona kahi i hoʻokomo ʻia ai ʻo R ma ka ʻōnaehana ʻōnaehana ala; ma Windows, e like ke ala me kēia: C:Program FilesRR-4.0.2bin.
  2. E hana i kahi faila bat hiki ke hoʻokō me hoʻokahi laina R CMD BATCH C:rscriptscheck_botcheck_bot.R. Hoʻololi C:rscriptscheck_botcheck_bot.R i ke ala piha i kāu faila R.
  3. A laila, e hoʻohana i ka Windows Task Scheduler e hoʻonohonoho i kahi papa hoʻomaka, no ka laʻana, i kēlā me kēia hapalua hola.

hopena

Ma kēia ʻatikala, ua noʻonoʻo mākou pehea e hana ai i kahi bot a hoʻohana iā ia e hoʻouna i nā leka like ʻole ma ke telegram.

Ua wehewehe au i ka hana o ka nānā ʻana i ka Windows Task Scheduler, akā hiki iā ʻoe ke hoʻohana i ka mea i loko o kēia ʻatikala e hoʻouna i nā leka hoʻomaopopo, mai ka wānana o ka wā a hiki i nā kumukūʻai ma ke kumukūʻai, no ka mea ʻAe ʻo R iā ʻoe e hoʻopili i kahi helu nui o nā kumu ʻikepili.

Ma ka ʻatikala aʻe, e noʻonoʻo mākou pehea e hoʻohui ai i nā kauoha a me kahi kīwī i ka bot i hiki ʻole iā ia ke hoʻouna wale i nā leka hoʻomaopopo, akā hana pū kekahi i nā hana paʻakikī.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka