Te tuhi karetao waea i roto i te R (waahanga 1): Te hanga karetao me te whakamahi hei tuku karere ma te waea waea.

Kei te tipu haere te hunga whakarongo Telegram i nga ra katoa, na te waatea o te karere, te aroaro o nga hongere, nga korerorero, me te kaha ki te hanga bots.

Ka taea te whakamahi i nga potae mo nga kaupapa rereke, mai i te whakaaunoa i nga whakawhitiwhiti korero me o kaihoko ki te whakahaere i au ake mahi.

Ko te mea nui, ka taea e koe te whakamahi waea waea ki te mahi i nga mahi ma te karetao: tuku, tono raraunga ranei, whakahaere mahi i runga i te tūmau, kohikohi korero ki roto i te papanga raraunga, tuku imeera, me era atu.

Kei te whakamahere ahau ki te tuhi i te raupapa o nga tuhinga mo te mahi API karetao waea, me te tuhi i nga potae kia rite ki o hiahia.

Te tuhi karetao waea i roto i te R (waahanga 1): Te hanga karetao me te whakamahi hei tuku karere ma te waea waea.

I roto i tenei tuhinga tuatahi ka whakaaro tatou me pehea te hanga i te karetao waea me te whakamahi ki te tuku whakamohiotanga ma te waea waea.

Ko te mutunga, ka whai karetao ka tirotiro i te mana o te mahi whakamutunga o nga mahi katoa i roto i te Kaihōtaka Tūmahi Windows, ka tuku whakamohiotanga ki a koe mena i rahua tetahi.

Engari ko te kaupapa o tenei raupapa tuhinga ehara i te whakaako i a koe ki te tuhi karetao mo tetahi mahi motuhake, whaiti, engari hei whakamohio ki a koe ki te wetereo o te kete. telegram.bot, me nga tauira waehere ka taea e koe te tuhi i nga potae hei whakaoti i o ake raruraru.

Tuhinga

Mena kei te pirangi koe ki te tātari raraunga, ka aro pea koe ki taku waea и youtube hongere. Ko te nuinga o nga korero e whakatapua ana ki te reo R.

  1. Te hanga karetao waea
  2. Te whakauru i tetahi kete mo te mahi me te karetao waea i R
  3. Te tuku karere mai i R ki Telegram
  4. Te whakarite i te waarangi mo te whakahaere tirotiro mahi
  5. mutunga

Te hanga karetao waea

Tuatahi, me hanga e tatou he bot. Ka mahia tenei ma te whakamahi i tetahi bot motuhake Matua Matua, haere ki hono ka tuhi ki te karetao /start.

Whai muri ka whiwhi koe i tetahi panui me te rarangi o nga whakahau:

Karere na 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

Hei waihanga karetao hou, tukuna te whakahau /newbot.

Ka tono a BotFather ki a koe ki te whakauru i te ingoa o te karetao me te takiuru.

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

Ka taea e koe te whakauru i tetahi ingoa, engari me mutu te takiuru bot.

Mena i tika nga mea katoa, ka whiwhi koe i nga korero e whai ake nei:

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

I muri mai ka hiahia koe ki te tohu API kua riro, i taku tauira 123456789:abcdefghijklmnopqrstuvwxyz.

I tenei taahiraa, kua oti te mahi whakarite mo te hanga i te bot.

Te whakauru i tetahi kete mo te mahi me te karetao waea i R

Ki taku whakaaro kei a koe te reo R me te taiao whanaketanga RStudio kua whakauruhia. Mena kaore tenei i te keehi, ka taea e koe te titiro ki tenei akoranga ataata me pehea te whakauru i a raatau.

Hei mahi tahi me te Telegram Bot API ka whakamahia e matou te kete R telegram.bot.

Ko te whakauru i nga kohinga ki R ka mahia ma te whakamahi i te mahi install.packages(), na ki te whakauru i te kete e hiahiatia ana e matou, whakamahia te whakahau install.packages("telegram.bot").

Ka taea e koe te ako atu mo te whakauru i nga momo kete mai i tenei ataata.

I muri i te whakauru i te kete, me hono koe:

library(telegram.bot)

Te tuku karere mai i R ki Telegram

Ko te bot i hanga e koe ka kitea i roto i Telegram ma te whakamahi i te takiuru i tohua i te wa o te waihanga, i taku keehi @my_test_bot.

Tukuna te karetao he karere, penei "Hey bot." I tenei wa, me penei taatau ki te tiki i te id o to korerorero me te karetao.

Inaianei ka tuhia e matou te waehere e whai ake nei ki R.

library(telegram.bot)

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

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

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

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

I te timatanga, ka hangaia e matou he tauira o to maatau bot me te mahi Bot(), ko te tohu kua riro i mua me tuku ki roto hei tohenga.

Kaore i te whakaarohia he mahi pai ki te penapena i te tohu i roto i te waehere, ka taea e koe te penapena i roto i te taurangi taiao me te panui mai. Ma te taunoa i roto i te kete telegram.bot Kua whakatinanahia te tautoko mo nga taurangi taiao o nga ingoa e whai ake nei: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА... Engari o ИМЯ_ВАШЕГО_БОТА whakakapihia te ingoa i tohua e koe i te wa e hanga ana, i taku keehi he taurangi R_TELEGRAM_BOT_My Test Bot.

He maha nga huarahi ki te hanga i tetahi taurangi taiao; Ka korerotia e ahau ki a koe mo te ao me te whakawhiti-whakawhiti. Waihangahia ki to raarangi kaainga (ka kitea e koe ma te whakamahi i te whakahau path.expand("~")) kōnae kuputuhi me te ingoa .Te Taiao. Ka taea hoki e koe tenei ma te whakamahi i te whakahau file.edit(path.expand(file.path("~", ".Renviron"))).

A taapirihia te rarangi e whai ake nei.

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

I muri mai, ka taea e koe te whakamahi i te tohu kua tiakina i roto i te taurangi taiao ma te whakamahi i te mahi bot_token(), i.e. penei:

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

Tikanga getUpdates()ka taea e tatou te tiki whakahōu karetao, i.e. nga karere i tukuna atu ki a ia. Tikanga from_chat_id(), ka taea e koe te tiki ID o te korerorero i tukuna mai ai te karere. Kei te hiahia matou ki tenei ID hei tuku karere mai i te bot.

I tua atu i te id korerorero mai i te mea i riro mai i te tikanga getUpdates() ka whiwhi hoki koe i etahi atu korero whai hua. Hei tauira, nga korero mo te kaiwhakamahi nana i tuku te karere.

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"

Na, i tenei waahanga kei a maatau nga mea katoa e hiahia ana matou ki te tuku karere mai i te bot ki Telegram. Kia whakamahi tatou i te tikanga sendMessage(), ki roto e hiahia ana koe ki te tuku i te ID korerorero, te tuhinga karere, me te momo tohu tohu. Ko te momo tohu ka taea te Markdown, HTML ranei ka whakatauhia e te tautohe parse_mode.

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

Nga take whakahōputu tohu:

  • Kua tohua te momotuhi maia ki te *:
    • tauira: *жирный шритф*
    • hua: momotuhi maia
  • Ka tohuhia nga titaha e nga tohu:
    • tauira: _курсив_
    • hua: whakatitaha
  • Ko te momotuhi mokowhiti, e whakamahia ana hei whakanui i te waehere papatono, ka tohua ma te whakamahi i nga tohutoro - `:
    • tauira: `monospace monospace`
    • hua: моноширинный шрифт

Tikanga o te whakahōputu tohu HTML:
I roto i te HTML, ka takai koe i te waahanga o te tuhinga e tika ana kia tohua ki nga tohu, hei tauira <тег>текст</тег>.

  • <tag> - tūtohu whakatuwhera
  • - tohu kati

Nga tohu tohu HTML

  • <b> - momotuhi maia
    • tauira: <b>жирный шрифт</b>
    • painga momotuhi maia
  • <i> - whakatitaha
    • tauira: <i>курсив</i>
    • hua: whakatitaha
  • — моноширинный шрифт
    • tauira: моноширинный шрифт
    • hua: моноширинный шрифт

I tua atu i te tuhinga, ka taea e koe te tuku i etahi atu ihirangi ma te whakamahi i nga tikanga motuhake:

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

Ko era. hei tauira te whakamahi i te tikanga sendPhoto() ka taea e koe te tuku kauwhata kua tiakina hei ahua i hanga e koe ma te whakamahi i te kete ggplot2.

Te taki i te Kaihōtaka Mahi Windows me te tuku whakamohiotanga mo nga mahi kua mutu kino

Hei mahi me Windows Task Scheduler me whakauru koe i te kete taskscheduleR, a mo te pai o te mahi me nga raraunga, whakauruhia te kete dplyr.

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

I muri mai, ma te whakamahi i te mahi taskscheduler_ls() ka tono matou i nga korero mo nga mahi mai i ta maatau kai whakarite. Te whakamahi i te mahi filter() mai i te kete dplyr Ka tangohia e matou mai i te rarangi o nga mahi i tutuki pai me te 0 te mana hua whakamutunga, me era kaore ano kia whakarewahia, he mana 267011, nga mahi haua, me nga mahi e whakahaere ana i tenei wa.

# запрашиваем список задач
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 roto i te whare task Kei a matou he rarangi o nga mahi i rahua, me tuku tenei rarangi ki Telegram.

Mena ka tirohia e tatou nga whakahau katoa, na:

  • filter() — ka tātari i te rarangi o nga mahi i runga i nga tikanga kua whakaahuatia i runga ake nei
  • select() — kotahi anake te mara i te ripanga me te ingoa o nga mahi
  • unique() - ka tango i nga ingoa taarua
  • unlist() — ka huri i te tīwae ripanga kua tohua ki te vector
  • paste0() — ka hono i nga ingoa o nga mahi ki te rarangi kotahi, ka hoatu he kai rarangi hei whakawehe, ara. n.

Ko nga mea e toe ana ma matou ko te tuku i tenei hua ma te waea waea.

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

Na, i tenei wa ka penei te ahua o te waehere bot:

Waehere bot arotake mahi

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

}

Ina whakamahi i te tauira i runga ake nei, whakakapihia to tohu karetao me to ID korerorero ki roto i te waehere.

Ka taea e koe te taapiri i nga tikanga mo te tātari i nga mahi, hei tauira, te tirotiro i nga mahi i mahia e koe, haunga nga mahi a te punaha.

Ka taea hoki e koe te whakauru i nga momo tautuhinga ki roto i tetahi konae whirihoranga motuhake, ka penapena i te id korerorero me te tohu ki roto. Ka taea e koe te panui i te whirihora, hei tauira, ma te whakamahi i te kete configr.

Tauira tenei whirihora

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

He tauira mo te panui i nga taurangi mai i te whirihora i 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

Te whakarite i te waarangi mo te whakahaere tirotiro mahi

Ko te tukanga o te whakatakoto i te whakarewatanga o nga tuhinga tuhi i runga i te waarangi kua whakamaramatia ake i roto i tenei Tuhinga. I konei ka whakaahua noa ahau i nga huarahi hei whai mo tenei. Mena kaore i te marama ki a koe etahi o nga taahiraa, tirohia te tuhinga i hoatu e ahau he hononga.

Me whakaaro tatou i tiakina e tatou to tatou waehere bot ki tetahi konae check_bot.R. Hei whakarite i tenei konae kia rere auau, whai i enei mahi:

  1. Tuhia te ara ki te kōpaki i whakauruhia ai a R ki te taurangi pūnaha Ara; i Windows, ka penei te huarahi: C:Program FilesRR-4.0.2bin.
  2. Waihangahia he konae pekapeka ka taea te whakahaere me te raina kotahi R CMD BATCH C:rscriptscheck_botcheck_bot.R. Whakakapi C:rscriptscheck_botcheck_bot.R ki te ara katoa ki to kōnae R.
  3. Whai muri, whakamahia te Kaihōtaka Mahi Windows ki te whakarite i te raarangi whakarewatanga, hei tauira, ia haurua haora.

mutunga

I roto i tenei tuhinga, i whakaaro matou me pehea te hanga karetao me te whakamahi ki te tuku i nga momo whakamohiotanga i roto i te waea waea.

I whakaahuahia e au te mahi mo te tirotiro i te Kaihōtaka Mahi Matapihi, engari ka taea e koe te whakamahi i nga rauemi o tenei tuhinga ki te tuku panui, mai i te matapae huarere ki nga utu utu mo te utu kararehe, na te mea... R ka taea e koe te hono atu ki te maha o nga puna raraunga.

I roto i te tuhinga e whai ake nei, ka whakaaro tatou me pehea te taapiri i nga whakahau me te papapātuhi ki te karetao kia kore e taea te tuku whakamohiotanga anake, engari ka mahi ano i nga mahi uaua ake.

Source: will.com

Tāpiri i te kōrero