"เจเจฐ เจตเจฟเฉฑเจ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฌเฉเจ เจฒเจฟเจเจฃเจพ" เจฒเฉเฉ เจฆเจพ เจเจน เจคเฉเจเจพ เจฒเฉเจ เจนเฉเฅค เจชเจฟเจเจฒเฉ เจชเฉเจฐเจเจพเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจธเจฟเฉฑเจเจฟเจ เจเจฟ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฌเฉเจ เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจฃเจพ เจนเฉ, เจเจธ เจฐเจพเจนเฉเจ เจธเฉฐเจฆเฉเจธเจผ เจเจฟเจตเฉเจ เจญเฉเจเจฃเฉ เจนเจจ, เจฌเฉเจ เจตเจฟเฉฑเจ เจเจฎเจพเจเจกเจพเจ เจ
เจคเฉ เจธเฉฐเจฆเฉเจธเจผ เจซเจฟเจฒเจเจฐ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจ เจนเจจเฅค เจเจธ เจฒเจ, เจเจธ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจฟ เจคเฉเจธเฉเจ เจเจธ เจฒเฉเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเฉ, เจฎเฉเจ เจเจผเฉเจฐเจฆเจพเจฐ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ เจเจฟ เจคเฉเจธเฉเจ เจชเฉเฉเจนเฉ
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเฉฑเจ เจเฉเจฌเฉเจฐเจก เจเฉเฉ เจเฉ เจเจชเจฃเฉ เจฌเฉเจ เจฆเฉ เจเจชเจฏเฉเจเจคเจพ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ เจเจฐเจพเจเจเฉ, เจเฉ เจฌเฉเจ เจเฉฐเจเจฐเจซเฉเจธ เจจเฉเฉฐ เจ เจจเฉเจญเจตเฉ เจ เจคเฉ เจตเจฐเจคเฉเจ เจตเจฟเฉฑเจ เจเจธเจพเจจ เจฌเจฃเจพ เจฆเฉเจตเฉเจเจพเฅค
เจฒเฉเฉ เจฆเฉ เจธเจพเจฐเฉ เจฒเฉเจ โR เจตเจฟเฉฑเจ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฌเฉเจ เจฒเจฟเจเจฃเจพโ
เจ เจธเฉเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจตเจฟเฉฑเจ เจธเฉฐเจฆเฉเจธเจผ เจญเฉเจเจฃ เจฒเจ เจตเจฐเจคเจฆเฉ เจนเจพเจ เจฌเฉเจ เจตเจฟเฉฑเจ เจเจฎเจพเจเจก เจธเจนเจพเจเจคเจพ เจ เจคเฉ เจธเฉเจจเฉเจนเจพ เจซเจฟเจฒเจเจฐ เจธเจผเจพเจฎเจฒ เจเจฐเฉ เจเฉฑเจ เจฌเฉเจ เจตเจฟเฉฑเจ เจเฉเจฌเฉเจฐเจก เจธเจฎเจฐเจฅเจจ เจเจฟเจตเฉเจ เจเฉเฉเจจเจพ เจนเฉ
เจธเจฎเฉฑเจเจฐเฉ
เจเฉ เจคเฉเจธเฉเจ เจกเฉเจเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฎเฉเจฐเฉ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจชเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ
เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฌเฉเจ เจเจฟเจธ เจเจฟเจธเจฎ เจฆเฉ เจเฉเจฌเฉเจฐเจกเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ? เจเฉเจฌเฉเจฐเจก เจฆเจพ เจเจตเจพเจฌ เจฆเจฟเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก
3.1.เจเจจเจฒเจพเจเจจ เจฌเจเจจเจพเจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจฌเฉเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ
3.2.เจเฉฑเจ เจฌเฉเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ เจเฉฑเจ เจเฉเจฃเฉ เจนเฉเจ เจธเจผเจนเจฟเจฐ เจฒเจ เจฎเฉเจเฉเจฆเจพ เจฎเฉเจธเจฎ เจฆเฉ เจฐเจฟเจชเฉเจฐเจ เจเจฐเจฆเจพ เจนเฉ
3.3.เจเฉฑเจ เจฌเฉเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ habr.com เจคเฉเจ เจจเจฟเจฐเจงเจพเจฐเจค เจนเฉฑเจฌ เจฆเฉ เจฒเจฟเฉฐเจเจพเจ เจฆเฉ เจจเจพเจฒ เจจเจตเฉเจจเจคเจฎ เจฒเฉเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจฆเฉ เจนเฉ เจธเจฟเฉฑเจเจพ
เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจฌเฉเจ เจเจฟเจธ เจเจฟเจธเจฎ เจฆเฉ เจเฉเจฌเฉเจฐเจกเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ?
เจเจธ เจฒเจฟเจเจค เจฆเฉ เจธเจฎเฉเจ telegram.bot
เจคเฉเจนเจพเจจเฉเฉฐ เจฆเฉ เจเจฟเจธเจฎ เจฆเฉ เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
- เจเจตเจพเจฌ - เจฎเฉเฉฑเจ, เจจเจฟเจฏเจฎเจค เจเฉเจฌเฉเจฐเจก, เจเฉ เจธเฉเจจเฉเจนเจพ เจเฉเจเจธเจ เจเจจเจชเฉเจ เจชเฉเจจเจฒ เจฆเฉ เจนเฉเจ เจพเจ เจธเจฅเจฟเจค เจนเฉเฅค เจ เจเจฟเจนเจพ เจเฉเจฌเฉเจฐเจก เจฌเฉเจ เจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจเฉเจเจธเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเฉเจเจธเจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจน เจฌเจเจจ 'เจคเฉ เจฒเจฟเจเจฟเจ เจเฉเจเจธเจ เจญเฉเจเจฆเจพ เจนเฉเฅค
- เจเจจเจฒเจพเจเจจ - เจเฉฑเจ เจเจพเจธ เจฌเฉเจ เจธเฉเจจเฉเจนเฉ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจเฉเจฌเฉเจฐเจกเฅค เจเจน เจเฉเจฌเฉเจฐเจก เจฌเจเจจ เจฆเจฌเจพเจ เจเจพเจฃ เจจเจพเจฒ เจธเจฌเฉฐเจงเจฟเจค เจฌเฉเจ เจกเฉเจเจพ เจญเฉเจเจฆเจพ เจนเฉ; เจเจน เจกเฉเจเจพ เจฌเจเจจ เจเฉฑเจคเฉ เจฒเจฟเจเฉ เจเฉเจเจธเจ เจคเฉเจ เจตเฉฑเจเจฐเจพ เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค เจ เจคเฉ เจ เจเจฟเจนเฉ เจฌเจเจจเจพเจ เจฐเจพเจนเฉเจ เจเจพเจฐเจตเจพเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ CallbackQueryHandler.
เจฌเฉเจ เจฒเจ เจเฉเจฌเฉเจฐเจก เจเฉเจฒเฉเจนเจฃ เจฒเจ, เจตเจฟเจงเฉ เจฐเจพเจนเฉเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเจฃ เจตเฉเจฒเฉ เจเจน เจเจผเจฐเฉเจฐเฉ เจนเฉ sendMessage()
, เจชเจนเจฟเจฒเจพเจ เจฌเจฃเจพเจ เจเฉเจฌเฉเจฐเจก เจจเฉเฉฐ เจเฉฑเจ เจเจฐเจเฉเจฎเฉเจเจ เจตเจเฉเจ เจชเจพเจธ เจเจฐเฉ reply_markup
.
เจนเฉเจ เจพเจ เจ เจธเฉเจ เจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฆเฉเจเจพเจเจเฉเฅค
เจเฉเจฌเฉเจฐเจก เจฆเจพ เจเจตเจพเจฌ เจฆเจฟเจ
เจเจฟเจตเฉเจ เจเจฟ เจฎเฉเจ เจเฉฑเจชเจฐ เจฒเจฟเจเจฟเจ เจนเฉ, เจเจน เจฎเฉเฉฑเจ เจฌเฉเจ เจเฉฐเจเจฐเฉเจฒ เจเฉเจฌเฉเจฐเจก เจนเฉ.
เจ เจงเจฟเจเจพเจฐเจค เจฎเจฆเจฆ เจคเฉเจ เจเจตเจพเจฌเฉ เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ
bot <- Bot(token = "TOKEN")
chat_id <- "CHAT_ID"
# Create Custom Keyboard
text <- "Aren't those custom keyboards cool?"
RKM <- ReplyKeyboardMarkup(
keyboard = list(
list(KeyboardButton("Yes, they certainly are!")),
list(KeyboardButton("I'm not quite sure")),
list(KeyboardButton("No..."))
),
resize_keyboard = FALSE,
one_time_keyboard = TRUE
)
# Send Custom Keyboard
bot$sendMessage(chat_id, text, reply_markup = RKM)
เจเจชเจฐเฉเจเจค เจชเฉเจเฉเจ เจฆเฉ เจ
เจงเจฟเจเจพเจฐเจค เจฎเจฆเจฆ เจคเฉเจ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจนเฉ telegram.bot
. เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฒเจ, เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ ReplyKeyboardMarkup()
, เจเฉ เจฌเจฆเจฒเฉ เจตเจฟเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจเจ เจฌเจเจจเจพเจ เจฆเฉเจเจ เจธเฉเจเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจฒเฉเจเจฆเจพ เจนเฉ KeyboardButton()
.
เจ
เฉฐเจฆเจฐ เจเจฟเจเจ ReplyKeyboardMarkup()
เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจธเฉเจเฉ เจจเจนเฉเจ, เจชเจฐ เจธเฉเจเฉเจเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจชเจพเจธ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ? เจคเฉฑเจฅ เจเจน เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจฎเฉเฉฑเจ เจธเฉเจเฉ เจชเจพเจธ เจเจฐเจฆเฉ เจนเฉ, เจ
เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจฌเจเจจเจพเจ เจฆเฉ เจนเจฐเฉเจ เจเจคเจพเจฐ เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจคเฉเจธเฉเจ เจเฉฑเจ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจเจ เจฌเจเจจ เจฒเจเจพ เจธเจเจฆเฉ เจนเฉเฅค
เจฆเจฒเฉเจฒ resize_keyboard
เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจฌเฉเจฐเจก เจฌเจเจจเจพเจ เจฆเฉ เจ
เจจเฉเจเฉเจฒ เจเจเจพเจฐ เจ
เจคเฉ เจเจฐเจเฉเจฎเฉเจเจ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจเฉเจฃเจจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ one_time_keyboard
เจคเฉเจนเจพเจจเฉเฉฐ เจนเจฐเฉเจ เจฌเจเจจ เจฆเจฌเจพเจเจฃ เจคเฉเจ เจฌเจพเจ
เจฆ เจเฉเจฌเฉเจฐเจก เจจเฉเฉฐ เจฒเฉเจเจพเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจฌเฉเจ เจฒเจฟเจเฉเจ เจเจฟเจธ เจตเจฟเฉฑเจ 3 เจฌเจเจจ เจนเฉเจฃเจเฉ:
- เจเฉเจ เจเจเจกเฉ - เจฌเฉเจ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจฆเฉ เจเฉเจ เจเจเจกเฉ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
- เจฎเฉเจฐเจพ เจจเจพเจฎ - เจคเฉเจนเจพเจกเฉ เจจเจพเจฎ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
- เจฎเฉเจฐเจพ เจฒเฉเจเจเจจ - เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจเจชเจญเฉเจเจคเจพ เจจเจพเจฎ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
เจเฉเจก 1: เจเจตเจพเจฌเฉ เจเฉเจฌเฉเจฐเจก เจฆเฉ เจจเจพเจฒ เจธเจงเจพเจฐเจจ เจฌเฉเจ
library(telegram.bot)
# ัะพะทะดะฐัะผ ัะบะทะตะผะฟะปัั ะบะปะฐััะฐ Updater
updater <- Updater('ะขะะะะ ะะะจะะะ ะะะขะ')
# ัะพะทะดะฐัะผ ะผะตัะพะดั
## ะผะตัะพะด ะดะปั ะทะฐะฟััะบะฐ ะบะปะฐะฒะธะฐัััั
start <- function(bot, update) {
# ัะพะทะดะฐัะผ ะบะปะฐะฒะธะฐัััั
RKM <- ReplyKeyboardMarkup(
keyboard = list(
list(KeyboardButton("ะงะฐั ID")),
list(KeyboardButton("ะะพั ะธะผั")),
list(KeyboardButton("ะะพะน ะปะพะณะธะฝ"))
),
resize_keyboard = FALSE,
one_time_keyboard = TRUE
)
# ะพัะฟัะฐะฒะปัะตะผ ะบะปะฐะฒะธะฐัััั
bot$sendMessage(update$message$chat_id,
text = 'ะัะฑะตัะธัะต ะบะพะผะฐะฝะดั',
reply_markup = RKM)
}
## ะผะตัะพะด ะฒะพะทะฒัะฐะทะฐััะธะน id ัะฐัะฐ
chat_id <- function(bot, update) {
bot$sendMessage(update$message$chat_id,
text = paste0("ะงะฐั id ััะพะณะพ ะดะธะฐะปะพะณะฐ: ", update$message$chat_id),
parse_mode = "Markdown")
}
## ะผะตัะพะด ะฒะพะทะฒัะฐัะฐััะธะน ะธะผั
my_name <- function(bot, update) {
bot$sendMessage(update$message$chat_id,
text = paste0("ะะฐั ะทะพะฒัั ", update$message$from$first_name),
parse_mode = "Markdown")
}
## ะผะตัะพะด ะฒะพะทะฒัะฐัะฐััะธะน ะปะพะณะธะฝ
my_username <- function(bot, update) {
bot$sendMessage(update$message$chat_id,
text = paste0("ะะฐั ะปะพะณะธะฝ ", update$message$from$username),
parse_mode = "Markdown")
}
# ัะพะทะดะฐัะผ ัะธะปัััั
## ัะพะพะฑัะตะฝะธั ั ัะตะบััะพะผ ะงะฐั ID
MessageFilters$chat_id <- BaseFilter(function(message) {
# ะฟัะพะฒะตััะตะผ ัะตะบัั ัะพะพะฑัะตะฝะธั
message$text == "ะงะฐั ID"
}
)
## ัะพะพะฑัะตะฝะธั ั ัะตะบััะพะผ ะะพั ะธะผั
MessageFilters$name <- BaseFilter(function(message) {
# ะฟัะพะฒะตััะตะผ ัะตะบัั ัะพะพะฑัะตะฝะธั
message$text == "ะะพั ะธะผั"
}
)
## ัะพะพะฑัะตะฝะธั ั ัะตะบััะพะผ ะะพะน ะปะพะณะธะฝ
MessageFilters$username <- BaseFilter(function(message) {
# ะฟัะพะฒะตััะตะผ ัะตะบัั ัะพะพะฑัะตะฝะธั
message$text == "ะะพะน ะปะพะณะธะฝ"
)
# ัะพะทะดะฐัะผ ะพะฑัะฐะฑะพััะธะบะธ
h_start <- CommandHandler('start', start)
h_chat_id <- MessageHandler(chat_id, filters = MessageFilters$chat_id)
h_name <- MessageHandler(my_name, filters = MessageFilters$name)
h_username <- MessageHandler(my_username, filters = MessageFilters$username)
# ะดะพะฑะฐะฒะปัะตะผ ะพะฑัะฐะฑะพััะธะบะธ ะฒ ะดะธัะฟะตััะตั
updater <- updater +
h_start +
h_chat_id +
h_name +
h_username
# ะทะฐะฟััะบะฐะตะผ ะฑะพัะฐ
updater$start_polling()
'เจคเฉเจนเจพเจกเฉ เจฌเฉเจ เจเฉเจเจจ' เจจเฉเฉฐ เจ เจธเจฒ เจเฉเจเจจ เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฐเฉเจเจค เจเฉเจก เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจเจฒเจพเจ, เจเจฟเจธ เจฐเจพเจนเฉเจ เจคเฉเจธเฉเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจธเฉ เจฌเฉเจเจซเฉเจฆเจฐ (เจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเฉเจคเฉ
เจชเจนเจฟเจฒเจพ เจฒเฉเจ ).
เจฒเจพเจเจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฌเฉเจ เจจเฉเฉฐ เจเฉฑเจ เจเจฎเจพเจเจก เจฆเจฟเจ /start
, เจเจฟเจเจเจเจฟ เจเจน เจฌเจฟเจฒเจเฉเจฒ เจเจนเฉ เจนเฉ เจเฉ เจ
เจธเฉเจ เจเฉเจฌเฉเจฐเจก เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจฒเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจนเฉเฅค
เจเฉเจเจฐ เจเจธ เจธเจฎเฉเจ เจคเฉเจนเจพเจกเฉ เจฒเจ เจตเจฟเจงเฉเจเจ, เจซเจฟเจฒเจเจฐเจพเจ เจ
เจคเฉ เจนเฉเจเจกเจฒเจฐ เจฌเจฃเจพเจเจฃ เจฆเฉ เจจเจพเจฒ เจฆเจฟเฉฑเจคเฉ เจเฉเจก เจเจฆเจพเจนเจฐเจจ เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจจเจพ เจฎเฉเจธเจผเจเจฒ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจชเจฟเจเจฒเฉ เจเฉฑเจ 'เจคเฉ เจตเจพเจชเจธ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจ เจธเฉเจ 4 เจคเจฐเฉเจเฉ เจฌเจฃเจพเจ:
- เจธเจผเฉเจฐเฉ เจเจฐเฉ - เจเฉเจฌเฉเจฐเจก เจเจฒเจพเจ
- chat_id โ เจเฉเจ ID เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
- my_name โ เจเจชเจฃเฉ เจจเจพเจฎ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
- my_username โ เจเจชเจฃเฉ เจฒเจพเจเจเจจ เจฒเจ เจฌเฉเจจเจคเฉ เจเจฐเฉ
เจเจคเจฐเจพเจเจผ เจเจฐเจจ เจฒเจ เจธเฉเจจเฉเจนเจพ เจซเจฟเจฒเจเจฐ เจเจนเจจเจพเจ เจฆเฉ เจเฉเจเจธเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ 3 เจธเฉเจจเฉเจนเฉ เจซเจฟเจฒเจเจฐ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ:
- chat_id โ เจเฉเจเจธเจ เจฆเฉ เจจเจพเจฒ เจธเฉเจจเฉเจนเฉ
"ะงะฐั ID"
- เจจเจพเจฎ - เจเฉเจเจธเจ เจฆเฉ เจจเจพเจฒ เจธเฉเจจเฉเจนเฉ
"ะะพั ะธะผั"
- เจฏเฉเจเจผเจฐเจจเจพเจฎ โ เจเฉเจเจธเจ เจฆเฉ เจจเจพเจฒ เจธเฉเจจเฉเจนเฉ
"ะะพะน ะปะพะณะธะฝ"
เจ เจคเฉ เจ เจธเฉเจ 4 เจนเฉเจเจกเจฒเจฐ เจฌเจฃเจพเจ เจนเจจ เจเฉ, เจฆเจฟเฉฑเจคเฉ เจเจ เจเจฎเจพเจเจกเจพเจ เจ เจคเฉ เจซเจฟเจฒเจเจฐเจพเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ, เจจเจฟเจฐเจงเจพเจฐเจค เจคเจฐเฉเจเจฟเจเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจเฉเฅค
# ัะพะทะดะฐัะผ ะพะฑัะฐะฑะพััะธะบะธ
h_start <- CommandHandler('start', start)
h_chat_id <- MessageHandler(chat_id, filters = MessageFilters$chat_id)
h_name <- MessageHandler(my_name, filters = MessageFilters$name)
h_username <- MessageHandler(my_username, filters = MessageFilters$username)
เจเฉเจฌเฉเจฐเจก เจเฉเจฆ เจตเจฟเจงเฉ เจฆเฉ เจ
เฉฐเจฆเจฐ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ start()
เจเฉเจฎ เจฆเฉเจเจฐเจพ ReplyKeyboardMarkup()
.
RKM <- ReplyKeyboardMarkup(
keyboard = list(
list(KeyboardButton("ะงะฐั ID")),
list(KeyboardButton("ะะพั ะธะผั")),
list(KeyboardButton("ะะพะน ะปะพะณะธะฝ"))
),
resize_keyboard = FALSE,
one_time_keyboard = TRUE
)
เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจธเจพเจฐเฉ เจฌเจเจจ เจเฉฑเจ เจฆเฉเจเฉ เจฆเฉ เจนเฉเจ เจพเจ เจฐเฉฑเจเฉ เจนเจจ, เจชเจฐ เจ เจธเฉเจ เจฌเจเจจ เจธเฉเจเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจพเจ เจเจฐเจเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจตเจฟเจตเจธเจฅเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจเจฟเจเจเจเจฟ เจเฉเจฌเฉเจฐเจก เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฑเจ เจเจคเจพเจฐ เจฌเจเจจเจพเจ เจฆเฉ เจเฉฑเจ เจจเฉเจธเจเจก เจธเฉเจเฉ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจเจพเจเจฆเฉ เจนเฉ, เจซเจฟเจฐ เจธเจพเจกเฉ เจฌเจเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉเจก เจฆเฉ เจเฉเจ เจนเจฟเฉฑเจธเฉ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฒเจฟเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ:
RKM <- ReplyKeyboardMarkup(
keyboard = list(
list(
KeyboardButton("ะงะฐั ID"),
KeyboardButton("ะะพั ะธะผั"),
KeyboardButton("ะะพะน ะปะพะณะธะฝ")
)
),
resize_keyboard = FALSE,
one_time_keyboard = TRUE
)
เจเฉเจฌเฉเจฐเจก เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจ เจตเจฟเฉฑเจ เจญเฉเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ sendMessage()
, เจฆเจฒเฉเจฒ เจตเจฟเฉฑเจ reply_markup
.
bot$sendMessage(update$message$chat_id,
text = 'ะัะฑะตัะธัะต ะบะพะผะฐะฝะดั',
reply_markup = RKM)
เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก
เจเจฟเจตเฉเจ เจเจฟ เจฎเฉเจ เจเฉฑเจชเจฐ เจฒเจฟเจเจฟเจ เจนเฉ, เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจเฉฑเจ เจเจพเจธ เจธเฉฐเจฆเฉเจธเจผ เจจเจพเจฒ เจเฉเฉเจฟเจ เจนเฉเจเจ เจนเฉเฅค เจฎเฉเฉฑเจ เจเฉเจฌเฉเจฐเจก เจจเจพเจฒเฉเจ เจเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจเฉเจ เจนเฉเจฐ เจฎเฉเจธเจผเจเจฒ เจนเฉเฅค
เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจฌเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจขเฉฐเจ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจเฉฑเจ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจเจฒเจฟเฉฑเจ เจฆเจพ เจเจตเจพเจฌ เจฆเฉเจฃ เจฒเจ, เจคเฉเจธเฉเจ เจฌเฉเจ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจตเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉ answerCallbackQuery()
, เจเฉ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจฆเจฌเจพเจเจฃ เจตเจพเจฒเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเฉเจเฉเจซเจฟเจเฉเจธเจผเจจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค
เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจคเฉเจ เจญเฉเจเจฟเจ เจเจฟเจ เจกเฉเจเจพ เจเฉเจเจธเจ เจจเจนเฉเจ เจนเฉ, เจเจธเจฒเจ เจเจธเจจเฉเฉฐ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจนเฉเจเจกเจฒเจฐ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ CallbackQueryHandler()
.
เจเฉฑเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉเจก เจเฉ เจชเฉเจเฉเจ เจฆเฉ เจ
เจงเจฟเจเจพเจฐเจค เจฎเจฆเจฆ เจตเจฟเฉฑเจ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ telegram.bot
.
เจ เจงเจฟเจเจพเจฐเจค เจฎเจฆเจฆ เจคเฉเจ เจเฉฑเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉเจก
# Initialize bot
bot <- Bot(token = "TOKEN")
chat_id <- "CHAT_ID"
# Create Inline Keyboard
text <- "Could you type their phone number, please?"
IKM <- InlineKeyboardMarkup(
inline_keyboard = list(
list(
InlineKeyboardButton(1),
InlineKeyboardButton(2),
InlineKeyboardButton(3)
),
list(
InlineKeyboardButton(4),
InlineKeyboardButton(5),
InlineKeyboardButton(6)
),
list(
InlineKeyboardButton(7),
InlineKeyboardButton(8),
InlineKeyboardButton(9)
),
list(
InlineKeyboardButton("*"),
InlineKeyboardButton(0),
InlineKeyboardButton("#")
)
)
)
# Send Inline Keyboard
bot$sendMessage(chat_id, text, reply_markup = IKM)
เจคเฉเจนเจพเจจเฉเฉฐ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ InlineKeyboardMarkup()
, เจฐเจฟเจชเจฒเจพเจ เจเฉเจฌเฉเจฐเจก เจฆเฉ เจธเจฎเจพเจจ เจธเจฟเจงเจพเจเจค 'เจคเฉเฅค IN InlineKeyboardMarkup()
เจเจจเจฒเจพเจเจจ เจฌเจเจจเจพเจ เจฆเฉเจเจ เจธเฉเจเฉเจเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจจเฉเฉฐ เจชเจพเจธ เจเจฐเจจเจพ เจเจผเจฐเฉเจฐเฉ เจนเฉ, เจนเจฐเฉเจ เจตเจฟเจ
เจเจคเฉเจเจค เจฌเจเจจ เจซเฉฐเจเจธเจผเจจ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ InlineKeyboardButton()
.
เจเฉฑเจ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจเจพเจ เจคเจพเจ เจเฉฑเจ เจเจฐเจเฉเจฎเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฌเฉเจ เจจเฉเฉฐ เจเฉเจ เจกเฉเจเจพ เจญเฉเจ เจธเจเจฆเจพ เจนเฉ callback_data
, เจเจพเจ เจเจฐเจเฉเจฎเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฟเจธเฉ เจตเฉ HTML เจชเฉฐเจจเฉ เจจเฉเฉฐ เจเฉเจฒเฉเจนเฉ url
.
เจจเจคเฉเจเจพ เจเฉฑเจ เจธเฉเจเฉ เจนเฉเจตเฉเจเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจนเจฐเฉเจ เจคเฉฑเจค เจเจจเจฒเจพเจเจจ เจฌเจเจจเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจตเฉ เจนเฉ เจเจฟเจจเฉเจนเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจคเจพเจฐ เจตเจฟเฉฑเจ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจ เฉฑเจเฉ เจ เจธเฉเจ เจเจจเจฒเจพเจเจจ เจฌเจเจจเจพเจ เจตเจพเจฒเฉ เจฌเฉเจเจธ เจฆเฉเจเจ เจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฆเฉเจเจพเจเจเฉเฅค
เจเจจเจฒเจพเจเจจ เจฌเจเจจเจพเจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจฌเฉเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ
เจชเจนเจฟเจฒเจพเจ, เจ
เจธเฉเจ เจเฉเจตเจฟเจก -19 เจฒเจ เจเจเจธเจชเฉเจฐเฉเจธ เจเฉเจธเจเจฟเฉฐเจ เจฒเจ เจเฉฑเจ เจฌเฉเจ เจฒเจฟเจเจพเจเจเฉเฅค เจนเฉเจเจฎ เจฆเฉเจเจฐเจพ /test
, เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจฆเฉ เจฌเจเจจเจพเจ เจตเจพเจฒเจพ เจเฉเจฌเฉเจฐเจก เจญเฉเจเฉเจเจพ, เจฆเจฌเจพเจ เจเจ เจฌเจเจจ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจน เจคเฉเจนเจพเจจเฉเฉฐ เจคเฉเจนเจพเจกเฉ เจเฉเจธเจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเฉเจเจพเฅค
เจเฉเจก 2: เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจตเจพเจฒเจพ เจธเจญ เจคเฉเจ เจธเจฐเจฒ เจฌเฉเจ
library(telegram.bot)
# ัะพะทะดะฐัะผ ัะบะทะตะผะฟะปัั ะบะปะฐััะฐ Updater
updater <- Updater('ะขะะะะ ะะะจะะะ ะะะขะ')
# ะผะตัะพะด ะดะปั ะพัะฟัะฐะฒะบะธ InLine ะบะปะฐะฒะธะฐัััั
test <- function(bot, update) {
# ัะพะทะดะฐัะผ InLine ะบะปะฐะฒะธะฐัััั
IKM <- InlineKeyboardMarkup(
inline_keyboard = list(
list(
InlineKeyboardButton("ะะฐ", callback_data = 'yes'),
InlineKeyboardButton("ะะตั", callback_data = 'no')
)
)
)
# ะัะฟัะฐะฒะปัะตะผ ะบะปะฐะฒะธะฐัััั ะฒ ัะฐั
bot$sendMessage(update$message$chat_id,
text = "ะั ะฑะพะปะตัะต ะบะพัะพะฝะฐะฒะธัััะพะผ?",
reply_markup = IKM)
}
# ะผะตัะพะด ะดะปั ะพะฑัะฐะฑะพัะบะธ ะฝะฐะถะฐัะธั ะบะฝะพะฟะบะธ
answer_cb <- function(bot, update) {
# ะฟะพะปััะตะฝะฝัะต ะดะฐะฝะฝัะต ั ะบะฝะพะฟะบะธ
data <- update$callback_query$data
# ะฟะพะปััะฐะตะผ ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั, ะฝะฐะถะฐะฒัะตะณะพ ะบะฝะพะฟะบั
uname <- update$effective_user()$first_name
# ะพะฑัะฐะฑะพัะบะฐ ัะตะทัะปััะฐัะฐ
if ( data == 'no' ) {
msg <- paste0(uname, ", ะฟะพะทะดัะฐะฒะปัั, ะฒะฐั ัะตัั ะฝะฐ covid-19 ะพััะธัะฐัะตะปัะฝัะน.")
} else {
msg <- paste0(uname, ", ะบ ัะพะถะฐะปะตะฝะธ ะฒะฐั ัะตัั ะฝะฐ covid-19 ะฟะพะปะพะถะธัะตะปัะฝัะน.")
}
# ะัะฟัะฐะฒะบะฐ ัะพะพะฑัะตะฝะธั
bot$sendMessage(chat_id = update$from_chat_id(),
text = msg)
# ัะพะพะฑัะฐะตะผ ะฑะพัั, ััะพ ะทะฐะฟัะพั ั ะบะฝะพะฟะบะธ ะฟัะธะฝัั
bot$answerCallbackQuery(callback_query_id = update$callback_query$id)
}
# ัะพะทะดะฐัะผ ะพะฑัะฐะฑะพััะธะบะธ
inline_h <- CommandHandler('test', test)
query_handler <- CallbackQueryHandler(answer_cb)
# ะดะพะฑะฐะฒะปัะตะผ ะพะฑัะฐะฑะพััะธะบะธ ะฒ ะดะธัะฟะตััะตั
updater <- updater + inline_h + query_handler
# ะทะฐะฟััะบะฐะตะผ ะฑะพัะฐ
updater$start_polling()
'เจคเฉเจนเจพเจกเฉ เจฌเฉเจ เจเฉเจเจจ' เจจเฉเฉฐ เจ เจธเจฒ เจเฉเจเจจ เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฐเฉเจเจค เจเฉเจก เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจเจฒเจพเจ, เจเจฟเจธ เจฐเจพเจนเฉเจ เจคเฉเจธเฉเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจธเฉ เจฌเฉเจเจซเฉเจฆเจฐ (เจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเฉเจคเฉ
เจชเจนเจฟเจฒเจพ เจฒเฉเจ ).
เจจเจคเฉเจเจพ:
เจ เจธเฉเจ เจฆเฉ เจคเจฐเฉเจเฉ เจฌเจฃเจพเจ:
- เจเฉเจธเจ - เจเฉเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจจเฉเฉฐ เจญเฉเจเจฃ เจฒเจ
- เจเจตเจพเจฌ_เจธเฉเจฌเฉ - เจเฉเจฌเฉเจฐเจก เจคเฉเจ เจญเฉเจเฉ เจเจ เจกเฉเจเจพ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฒเจเฅค
เจกเฉเจเจพ เจเฉ เจนเจฐเฉเจ เจฌเจเจจ เจคเฉเจ เจญเฉเจเจฟเจ เจเจพเจตเฉเจเจพ เจเจฐเจเฉเจฎเฉเจเจ เจตเจฟเฉฑเจ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ callback_data
, เจเฉฑเจ เจฌเจเจจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ. เจคเฉเจธเฉเจ เจเฉฐเจธเจเจฐเฉฑเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฌเจเจจ เจคเฉเจ เจญเฉเจเจฟเจ เจกเฉเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ update$callback_query$data
, เจตเจฟเจงเฉ เจฆเฉ เจ
เฉฐเจฆเจฐ เจเจตเจพเจฌ_เจธเฉเจฌเฉ.
เจฌเฉเจ เจฒเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก 'เจคเฉ เจชเฉเจฐเจคเฉเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฒเจ, เจตเจฟเจงเฉ เจเจตเจพเจฌ_เจธเฉเจฌเฉ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจนเฉเจเจกเจฒเจฐ เจฆเฉเจเจฐเจพ เจธเฉฐเจธเจพเจงเจฟเจค: CallbackQueryHandler(answer_cb)
. เจเฉ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจจเฉเฉฐ เจฆเจฌเจพเจเจฃ 'เจคเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจตเจฟเจงเฉ เจจเฉเฉฐ เจเจฒเจพเจเจเจฆเจพ เจนเฉเฅค เจนเฉเจเจกเจฒเจฐ CallbackQueryHandler เจฆเฉ เจฆเจฒเฉเจฒเจพเจ เจฒเฉเจเจฆเจพ เจนเฉ:
callback
- เจตเจฟเจงเฉ เจเจฟเจธเจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉpattern
โ เจเฉฑเจ เจเจฐเจเฉเจฎเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฌเจเจจ เจจเจพเจฒ เจฌเฉฐเจจเฉเจนเฉ เจนเฉเจ เจกเฉเจเจพ เจฆเฉเจเจฐเจพ เจซเจฟเจฒเจเจฐ เจเจฐเฉcallback_data
.
เจเจธ เจ
เจจเฉเจธเจพเจฐ, เจฆเจฒเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ pattern
เจ
เจธเฉเจ เจนเจฐเฉเจ เจฌเจเจจ เจจเฉเฉฐ เจฆเจฌเจพเจเจฃ เจฒเจ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจตเจฟเจงเฉ เจฒเจฟเจ เจธเจเจฆเฉ เจนเจพเจ:
เจเฉเจก 3: เจนเจฐเฉเจ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจฒเจ เจตเฉฑเจเจฐเฉ เจคเจฐเฉเจเฉ
library(telegram.bot)
# ัะพะทะดะฐัะผ ัะบะทะตะผะฟะปัั ะบะปะฐััะฐ Updater
updater <- Updater('ะขะะะะ ะะะจะะะ ะะะขะ')
# ะผะตัะพะด ะดะปั ะพัะฟัะฐะฒะบะธ InLine ะบะปะฐะฒะธะฐัััั
test <- function(bot, update) {
# ัะพะทะดะฐัะผ InLine ะบะปะฐะฒะธะฐัััั
IKM <- InlineKeyboardMarkup(
inline_keyboard = list(
list(
InlineKeyboardButton("ะะฐ", callback_data = 'yes'),
InlineKeyboardButton("ะะตั", callback_data = 'no')
)
)
)
# ะัะฟัะฐะฒะปัะตะผ ะบะปะฐะฒะธะฐัััั ะฒ ัะฐั
bot$sendMessage(update$message$chat_id,
text = "ะั ะฑะพะปะตัะต ะบะพัะพะฝะฐะฒะธัััะพะผ?",
reply_markup = IKM)
}
# ะผะตัะพะด ะดะปั ะพะฑัะฐะฑะพัะบะธ ะฝะฐะถะฐัะธั ะบะฝะพะฟะบะธ ะะฐ
answer_cb_yes <- function(bot, update) {
# ะฟะพะปััะฐะตะผ ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั, ะฝะฐะถะฐะฒัะตะณะพ ะบะฝะพะฟะบั
uname <- update$effective_user()$first_name
# ะพะฑัะฐะฑะพัะบะฐ ัะตะทัะปััะฐัะฐ
msg <- paste0(uname, ", ะบ ัะพะถะฐะปะตะฝะธ ะฒะฐั ัะตะบัั ะฝะฐ covid-19 ะฟะพะปะพะถะธัะตะปัะฝัะน.")
# ะัะฟัะฐะฒะบะฐ ัะพะพะฑัะตะฝะธั
bot$sendMessage(chat_id = update$from_chat_id(),
text = msg)
# ัะพะพะฑัะฐะตะผ ะฑะพัั, ััะพ ะทะฐะฟัะพั ั ะบะฝะพะฟะบะธ ะฟัะธะฝัั
bot$answerCallbackQuery(callback_query_id = update$callback_query$id)
}
# ะผะตัะพะด ะดะปั ะพะฑัะฐะฑะพัะบะธ ะฝะฐะถะฐัะธั ะบะฝะพะฟะบะธ ะะตั
answer_cb_no <- function(bot, update) {
# ะฟะพะปััะฐะตะผ ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั, ะฝะฐะถะฐะฒัะตะณะพ ะบะฝะพะฟะบั
uname <- update$effective_user()$first_name
msg <- paste0(uname, ", ะฟะพะทะดัะฐะฒะปัั, ะฒะฐั ัะตะบัั ะฝะฐ covid-19 ะพััะธัะฐัะตะปัะฝัะน.")
# ะัะฟัะฐะฒะบะฐ ัะพะพะฑัะตะฝะธั
bot$sendMessage(chat_id = update$from_chat_id(),
text = msg)
# ัะพะพะฑัะฐะตะผ ะฑะพัั, ััะพ ะทะฐะฟัะพั ั ะบะฝะพะฟะบะธ ะฟัะธะฝัั
bot$answerCallbackQuery(callback_query_id = update$callback_query$id)
}
# ัะพะทะดะฐัะผ ะพะฑัะฐะฑะพััะธะบะธ
inline_h <- CommandHandler('test', test)
query_handler_yes <- CallbackQueryHandler(answer_cb_yes, pattern = 'yes')
query_handler_no <- CallbackQueryHandler(answer_cb_no, pattern = 'no')
# ะดะพะฑะฐะฒะปัะตะผ ะพะฑัะฐะฑะพััะธะบะธ ะฒ ะดะธัะฟะตััะตั
updater <- updater +
inline_h +
query_handler_yes +
query_handler_no
# ะทะฐะฟััะบะฐะตะผ ะฑะพัะฐ
updater$start_polling()
'เจคเฉเจนเจพเจกเฉ เจฌเฉเจ เจเฉเจเจจ' เจจเฉเฉฐ เจ เจธเจฒ เจเฉเจเจจ เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฐเฉเจเจค เจเฉเจก เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจเจฒเจพเจ, เจเจฟเจธ เจฐเจพเจนเฉเจ เจคเฉเจธเฉเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจธเฉ เจฌเฉเจเจซเฉเจฆเจฐ (เจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเฉเจคเฉ
เจชเจนเจฟเจฒเจพ เจฒเฉเจ ).
เจนเฉเจฃ เจ
เจธเฉเจ 2 เจตเฉฑเจเจฐเฉ เจขเฉฐเจ เจฒเจฟเจเฉ เจนเจจ เจฏเจพเจจเฉ. เจเฉฑเจ เจขเฉฐเจ, เจนเจฐเฉเจ เจฌเจเจจ เจฆเจฌเจพเจเจฃ เจฒเจ, เจ
เจคเฉ เจเจฐเจเฉเจฎเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ pattern
, เจเจชเจฃเฉ เจนเฉเจเจกเจฒเจฐ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ:
query_handler_yes <- CallbackQueryHandler(answer_cb_yes, pattern = 'yes')
query_handler_no <- CallbackQueryHandler(answer_cb_no, pattern = 'no')
เจตเจฟเจงเฉ เจเฉเจก เจเจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจตเจพเจฌ_เจธเฉเจฌเฉ เจเฉเจฎ เจฆเฉเจเจฐเจพ bot$answerCallbackQuery(callback_query_id = update$callback_query$id)
, เจเฉ เจฌเฉเจ เจจเฉเฉฐ เจฆเฉฑเจธเจฆเจพ เจนเฉ เจเจฟ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจคเฉเจ เจกเฉเจเจพ เจชเฉเจฐเจพเจชเจค เจนเฉ เจเจฟเจ เจนเฉเฅค
เจเฉฑเจ เจฌเฉเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ เจเฉฑเจ เจเฉเจฃเฉ เจนเฉเจ เจธเจผเจนเจฟเจฐ เจฒเจ เจฎเฉเจเฉเจฆเจพ เจฎเฉเจธเจฎ เจฆเฉ เจฐเจฟเจชเฉเจฐเจ เจเจฐเจฆเจพ เจนเฉ
เจเจ เจเฉฑเจ เจฌเฉเจ เจฒเจฟเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ เจเฉ เจฎเฉเจธเจฎ เจกเฉเจเจพ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจธ เจฆเฉ เจเฉฐเจฎ เจฆเจพ เจคเจฐเจ เจนเฉเจ เจฒเจฟเจเฉ เจ
เจจเฉเจธเจพเจฐ เจนเฉเจตเฉเจเจพเฅค เจเฉเจฎ เจตเฉฑเจฒเฉเจ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ /start
เจคเฉเจธเฉเจ เจฎเฉเฉฑเจ เจเฉเจฌเฉเจฐเจก เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจฆเฉ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซเจผ เจเฉฑเจ "เจฎเฉเจธเจฎ" เจฌเจเจจ เจนเฉเฅค เจเจธ เจฌเจเจจ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเจจ เจจเจพเจฒ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจผเจนเจฟเจฐ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจฒเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจฎเจฟเจฒเฉเจเจพ เจเจฟเจธ เจฒเจ เจคเฉเจธเฉเจ เจฎเฉเจเฉเจฆเจพ เจฎเฉเจธเจฎ เจฆเจพ เจชเจคเจพ เจฒเจเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจธเจผเจนเจฟเจฐเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฆเฉ เจเฉเจฃ เจเจฐเฉ เจ
เจคเฉ เจฎเฉเจเฉเจฆเจพ เจฎเฉเจธเจฎ เจชเฉเจฐเจพเจชเจค เจเจฐเฉเฅค
เจเจธ เจเฉเจก เจเจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจ เจตเจพเจงเฉ เจชเฉเจเฉเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ:
httr
โ HTTP เจฌเฉเจจเจคเฉเจเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจชเฉเจเฉเจ, เจเจฟเจธ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจฟเจธเฉ เจตเฉ API เจจเจพเจฒ เจเฉฐเจฎ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจฎเฉเจซเจค API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉopenweathermap.org .stringr
- เจเฉเจเจธเจ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจชเฉเจเฉเจ, เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจเฉเจฃเฉ เจนเฉเจ เจธเจผเจนเจฟเจฐ เจตเจฟเฉฑเจ เจฎเฉเจธเจฎ เจฌเจพเจฐเฉ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจฌเจฃเจพเจเจฃ เจฒเจ เจตเจฐเจคเจพเจเจเฉเฅค
เจเฉเจก 4: เจเฉฑเจ เจฌเฉเจ เจเฉ เจเฉเจฃเฉ เจเจ เจธเจผเจนเจฟเจฐ เจฒเจ เจฎเฉเจเฉเจฆเจพ เจฎเฉเจธเจฎ เจฆเฉ เจฐเจฟเจชเฉเจฐเจ เจเจฐเจฆเจพ เจนเฉ
library(telegram.bot)
library(httr)
library(stringr)
# ัะพะทะดะฐัะผ ัะบะทะตะผะฟะปัั ะบะปะฐััะฐ Updater
updater <- Updater('ะขะะะะ ะะะจะะะ ะะะขะ')
# ัะพะทะดะฐัะผ ะผะตัะพะดั
## ะผะตัะพะด ะดะปั ะทะฐะฟััะบะฐ ะพัะฝะพะฒะฝะพะน ะบะปะฐะฒะธะฐัััั
start <- function(bot, update) {
# ัะพะทะดะฐัะผ ะบะปะฐะฒะธะฐัััั
RKM <- ReplyKeyboardMarkup(
keyboard = list(
list(
KeyboardButton("ะะพะณะพะดะฐ")
)
),
resize_keyboard = TRUE,
one_time_keyboard = TRUE
)
# ะพัะฟัะฐะฒะปัะตะผ ะบะปะฐะฒะธะฐัััั
bot$sendMessage(update$message$chat_id,
text = 'ะัะฑะตัะธัะต ะบะพะผะฐะฝะดั',
reply_markup = RKM)
}
## ะะตัะพะด ะฒัะทะพะฒะฐ Inine ะบะปะฐะฒะธะฐัััั
weather <- function(bot, update) {
IKM <- InlineKeyboardMarkup(
inline_keyboard = list(
list(
InlineKeyboardButton(text = 'ะะพัะบะฒะฐ', callback_data = 'New York,us'),
InlineKeyboardButton(text = 'ะกะฐะฝะบั-ะะตัะตัะฑััะณ', callback_data = 'Saint Petersburg'),
InlineKeyboardButton(text = 'ะัั-ะะพัะบ', callback_data = 'New York')
),
list(
InlineKeyboardButton(text = 'ะะบะฐัะตัะธะฝะฑััะณ', callback_data = 'Yekaterinburg,ru'),
InlineKeyboardButton(text = 'ะะตัะปะธะฝ', callback_data = 'Berlin,de'),
InlineKeyboardButton(text = 'ะะฐัะธะถ', callback_data = 'Paris,fr')
),
list(
InlineKeyboardButton(text = 'ะ ะธะผ', callback_data = 'Rome,it'),
InlineKeyboardButton(text = 'ะะดะตััะฐ', callback_data = 'Odessa,ua'),
InlineKeyboardButton(text = 'ะะธะตะฒ', callback_data = 'Kyiv,fr')
),
list(
InlineKeyboardButton(text = 'ะขะพะบะธะพ', callback_data = 'Tokyo'),
InlineKeyboardButton(text = 'ะะผััะตัะดะฐะผ', callback_data = 'Amsterdam,nl'),
InlineKeyboardButton(text = 'ะะฐัะธะฝะณัะพะฝ', callback_data = 'Washington,us')
)
)
)
# Send Inline Keyboard
bot$sendMessage(chat_id = update$message$chat_id,
text = "ะัะฑะตัะธัะต ะณะพัะพะด",
reply_markup = IKM)
}
# ะผะตัะพะด ะดะปั ัะพะพะฑัะตะฝะธั ะฟะพะณะพะดั
answer_cb <- function(bot, update) {
# ะฟะพะปััะฐะตะผ ะธะท ัะพะพะฑัะตะฝะธั ะณะพัะพะด
city <- update$callback_query$data
# ะพัะฟัะฐะฒะปัะตะผ ะทะฐะฟัะพั
ans <- GET('https://api.openweathermap.org/data/2.5/weather',
query = list(q = city,
lang = 'ru',
units = 'metric',
appid = '4776568ccea136ffe4cda9f1969af340'))
# ะฟะฐััะธะผ ะพัะฒะตั
result <- content(ans)
# ัะพัะผะธััะตะผ ัะพะพะฑัะตะฝะธะต
msg <- str_glue("{result$name} ะฟะพะณะพะดะฐ:n",
"ะขะตะบััะฐั ัะตะผะฟะตัะฐัััะฐ: {result$main$temp}n",
"ะกะบะพัะพััั ะฒะตััะฐ: {result$wind$speed}n",
"ะะฟะธัะฐะฝะธะต: {result$weather[[1]]$description}")
# ะพัะฟัะฐะฒะปัะตะผ ะธะฝัะพัะผะฐัะธั ะพ ะฟะพะณะพะดะต
bot$sendMessage(chat_id = update$from_chat_id(),
text = msg)
bot$answerCallbackQuery(callback_query_id = update$callback_query$id)
}
# ัะพะทะดะฐัะผ ัะธะปัััั
## ัะพะพะฑัะตะฝะธั ั ัะตะบััะพะผ ะะพะณะพะดะฐ
MessageFilters$weather <- BaseFilter(function(message) {
# ะฟัะพะฒะตััะตะผ ัะตะบัั ัะพะพะฑัะตะฝะธั
message$text == "ะะพะณะพะดะฐ"
}
)
# ัะพะทะดะฐัะผ ะพะฑัะฐะฑะพััะธะบะธ
h_start <- CommandHandler('start', start)
h_weather <- MessageHandler(weather, filters = MessageFilters$weather)
h_query_handler <- CallbackQueryHandler(answer_cb)
# ะดะพะฑะฐะฒะปัะตะผ ะพะฑัะฐะฑะพััะธะบะธ ะฒ ะดะธัะฟะตััะตั
updater <- updater +
h_start +
h_weather +
h_query_handler
# ะทะฐะฟััะบะฐะตะผ ะฑะพัะฐ
updater$start_polling()
'เจคเฉเจนเจพเจกเฉ เจฌเฉเจ เจเฉเจเจจ' เจจเฉเฉฐ เจ เจธเจฒ เจเฉเจเจจ เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฐเฉเจเจค เจเฉเจก เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจเจฒเจพเจ, เจเจฟเจธ เจฐเจพเจนเฉเจ เจคเฉเจธเฉเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจธเฉ เจฌเฉเจเจซเฉเจฆเจฐ (เจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเฉเจคเฉ
เจชเจนเจฟเจฒเจพ เจฒเฉเจ ).
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจกเจพ เจฌเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจเจฐเฉเจเจพ:
เจฏเฉเจเจจเจพเจฌเฉฑเจง เจคเฉเจฐ 'เจคเฉ, เจเจธ เจฌเฉเจ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฐเจธเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
เจ เจธเฉเจ เจเจชเจฃเฉ เจฎเฉเจธเจฎ เจฌเฉเจ เจฆเฉ เจ เฉฐเจฆเจฐ เจเจชเจฒเจฌเจง 3 เจคเจฐเฉเจเฉ เจฌเจฃเจพเจ เจนเจจ:
- เจธเจผเฉเจฐเฉ - เจฎเฉเฉฑเจ เจฌเฉเจ เจเฉเจฌเฉเจฐเจก เจฒเจพเจเจ เจเจฐเฉ
- เจฎเฉเจธเจฎ โ เจเฉฑเจ เจธเจผเจนเจฟเจฐ เจเฉเจฃเจจ เจฒเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจฒเจพเจเจ เจเจฐเฉ
- เจเจตเจพเจฌ_เจธเฉเจฌเฉ - เจฎเฉเฉฑเจ เจคเจฐเฉเจเจพ เจเฉ เจเจฟเจธเฉ เจฆเจฟเฉฑเจคเฉ เจธเจผเจนเจฟเจฐ เจฒเจ API เจคเฉเจ เจฎเฉเจธเจฎ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเฉเจ เจตเจฟเฉฑเจ เจญเฉเจเจฆเจพ เจนเฉเฅค
.เฉฐเจ เจธเจผเฉเจฐเฉ เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจเจฎเจพเจเจก เจจเจพเจฒ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ /start
, เจเฉ เจนเฉเจเจกเจฒเจฐ เจฆเฉเจเจฐเจพ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ CommandHandler('start', start)
.
เจตเจฟเจงเฉ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจฎเฉเจธเจฎ เจ เจธเฉเจ เจเจธเฉ เจจเจพเจฎ เจฆเจพ เจเฉฑเจ เจซเจฟเจฒเจเจฐ เจฌเจฃเจพเจเจ เจนเฉ:
# ัะพะทะดะฐัะผ ัะธะปัััั
## ัะพะพะฑัะตะฝะธั ั ัะตะบััะพะผ ะะพะณะพะดะฐ
MessageFilters$weather <- BaseFilter(function(message) {
# ะฟัะพะฒะตััะตะผ ัะตะบัั ัะพะพะฑัะตะฝะธั
message$text == "ะะพะณะพะดะฐ"
}
)
เจ
เจคเฉ เจ
เจธเฉเจ เจเจธ เจตเจฟเจงเฉ เจจเฉเฉฐ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจธเฉฐเจฆเฉเจธเจผ เจนเฉเจเจกเจฒเจฐ เจจเจพเจฒ เจเจพเจฒ เจเจฐเจฆเฉ เจนเจพเจ: MessageHandler(weather, filters = MessageFilters$weather)
.
เจ
เจคเฉ เจ
เฉฐเจค เจตเจฟเฉฑเจ, เจธเจพเจกเจพ เจฎเฉเฉฑเจ เจคเจฐเฉเจเจพ เจเจตเจพเจฌ_เจธเฉเจฌเฉ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจฆเจฌเจพเจเจฃ 'เจคเฉ เจชเฉเจฐเจคเฉเจเจฟเจฐเจฟเจ เจเจฐเจฆเจพ เจนเฉ, เจเฉ เจเจฟ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจนเฉเจเจกเจฒเจฐ เจฆเฉเจเจฐเจพ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ: CallbackQueryHandler(answer_cb)
.
เจเฉฑเจ เจขเฉฐเจ เจฆเฉ เจ
เฉฐเจฆเจฐ เจเจตเจพเจฌ_เจธเฉเจฌเฉ, เจ
เจธเฉเจ เจเฉเจฌเฉเจฐเจก เจคเฉเจ เจญเฉเจเฉ เจเจ เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเฉเจนเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจฟเฉฑเจ เจฒเจฟเจเจฆเฉ เจนเจพเจ city
: city <- update$callback_query$data
. เจซเจฟเจฐ เจ
เจธเฉเจ API เจคเฉเจ เจฎเฉเจธเจฎ เจกเฉเจเจพ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจญเฉเจเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจ
เฉฐเจค เจตเจฟเฉฑเจ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ answerCallbackQuery
เจฌเฉเจ เจจเฉเฉฐ เจธเฉเจเจฟเจค เจเจฐเจจ เจฒเจ เจเจฟ เจ
เจธเฉเจ เจเจจเจฒเจพเจเจจ เจฌเจเจจ เจฆเฉ เจเจฒเจฟเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเฉเจคเฉ เจนเฉเฅค
เจเฉฑเจ เจฌเฉเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ เจจเจฟเจธเจผเจเจฟเจค เจนเฉฑเจฌ เจฆเฉ เจฒเจฟเฉฐเจเจพเจ เจฆเฉ เจจเจพเจฒ เจจเจตเฉเจจเจคเจฎ เจฒเฉเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจฆเฉ เจนเฉ www.habr.com .
เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจฆเจฟเจเจพเจเจฃ เจฒเจ เจเจน เจฌเฉเจ เจชเฉเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ เจเจฟ เจเจจเจฒเจพเจเจจ เจฌเจเจจเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจเจพ เจนเฉ เจเฉ เจตเฉเฉฑเจฌ เจชเฉฐเจจเจฟเจเจ 'เจคเฉ เจฒเฉ เจเจพเจเจฆเฉ เจนเจจเฅค
เจเจธ เจฌเฉเจ เจฆเจพ เจคเจฐเจ เจชเจฟเจเจฒเฉ เจเฉฑเจ เจตเจฐเจเจพ เจนเฉ; เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเจฎเจพเจเจก เจจเจพเจฒ เจฎเฉเฉฑเจ เจเฉเจฌเฉเจฐเจก เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ /start
. เจ
เฉฑเจเฉ, เจฌเฉเจ เจธเจพเจจเฉเฉฐ เจเฉเจฃเจจ เจฒเจ 6 เจนเฉฑเจฌเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจ
เจธเฉเจ เจเจธ เจนเฉฑเจฌ เจจเฉเฉฐ เจเฉเจฃเจฆเฉ เจนเจพเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจเฉเจฃเฉ เจนเฉเจ เจนเฉฑเจฌ เจคเฉเจ 5 เจธเจญ เจคเฉเจ เจคเจพเจเจผเจพ เจชเฉเจฐเจเจพเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเจพเจเฅค
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจธเจฎเจเจฆเฉ เจนเฉ, เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ เจธเจพเจจเฉเฉฐ เจฒเฉเจเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจ
เจคเฉ เจเจธเจฆเฉ เจฒเจ เจ
เจธเฉเจ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจชเฉเจเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ habR
, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจนเจพเจฌเจฐเจพ เจคเฉเจ เจฒเฉเจเจพเจ เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจนเจจเจพเจ 'เจคเฉ เจเฉเจ เจ
เฉฐเจเฉเฉ เจเจฐ.
เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ habR
เจธเจฟเจฐเจซ github เจคเฉเจ เจธเฉฐเจญเจต เจนเฉ, เจเจฟเจธ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจตเจพเจงเฉ เจชเฉเจเฉเจ เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉ devtools
. เจเฉฐเจธเจเจพเจฒ เจเจฐเจจ เจฒเจ, เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเฉเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเฅค
install.packages('devtools')
devtools::install_github('selesnow/habR')
เจนเฉเจฃ เจเฉฑเจชเจฐ เจฆเฉฑเจธเฉ เจฌเฉเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉเจก เจจเฉเฉฐ เจตเฉเจเฉเจ:
เจเฉเจก 5: เจเฉฑเจ เจฌเฉเจ เจเฉ เจเฉเจฃเฉ เจเจ เจนเฉฑเจฌ 'เจคเฉ เจธเจญ เจคเฉเจ เจคเจพเจเจผเจพ เจฒเฉเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจฆเจพ เจนเฉ
library(telegram.bot)
library(habR)
# ัะพะทะดะฐัะผ ัะบะทะตะผะฟะปัั ะบะปะฐััะฐ Updater
updater <- Updater('ะขะะะะ ะะะจะะะ ะะะขะ')
# ัะพะทะดะฐัะผ ะผะตัะพะดั
## ะผะตัะพะด ะดะปั ะทะฐะฟััะบะฐ ะพัะฝะพะฒะฝะพะน ะบะปะฐะฒะธะฐัััั
start <- function(bot, update) {
# ัะพะทะดะฐัะผ ะบะปะฐะฒะธะฐัััั
RKM <- ReplyKeyboardMarkup(
keyboard = list(
list(
KeyboardButton("ะกะฟะธัะพะบ ััะฐัะตะน")
)
),
resize_keyboard = TRUE,
one_time_keyboard = TRUE
)
# ะพัะฟัะฐะฒะปัะตะผ ะบะปะฐะฒะธะฐัััั
bot$sendMessage(update$message$chat_id,
text = 'ะัะฑะตัะธัะต ะบะพะผะฐะฝะดั',
reply_markup = RKM)
}
## ะะตัะพะด ะฒัะทะพะฒะฐ Inine ะบะปะฐะฒะธะฐัััั
habs <- function(bot, update) {
IKM <- InlineKeyboardMarkup(
inline_keyboard = list(
list(
InlineKeyboardButton(text = 'R', callback_data = 'R'),
InlineKeyboardButton(text = 'Data Mining', callback_data = 'data_mining'),
InlineKeyboardButton(text = 'Data Engineering', callback_data = 'data_engineering')
),
list(
InlineKeyboardButton(text = 'Big Data', callback_data = 'bigdata'),
InlineKeyboardButton(text = 'Python', callback_data = 'python'),
InlineKeyboardButton(text = 'ะะธะทัะฐะปะธะทะฐัะธั ะดะฐะฝะฝัั
', callback_data = 'data_visualization')
)
)
)
# Send Inline Keyboard
bot$sendMessage(chat_id = update$message$chat_id,
text = "ะัะฑะตัะธัะต ะฅะฐะฑ",
reply_markup = IKM)
}
# ะผะตัะพะด ะดะปั ัะพะพะฑัะตะฝะธั ะฟะพะณะพะดั
answer_cb <- function(bot, update) {
# ะฟะพะปััะฐะตะผ ะธะท ัะพะพะฑัะตะฝะธั ะณะพัะพะด
hub <- update$callback_query$data
# ัะพะพะฑัะตะฝะธะต ะพ ัะพะผ, ััะพ ะดะฐะฝะฝัะต ะฟะพ ะบะฝะพะฟะบะต ะฟะพะปััะตะฝั
bot$answerCallbackQuery(callback_query_id = update$callback_query$id,
text = 'ะะพะดะพะถะดะธัะต ะฝะตัะบะพะปัะบะพ ะผะธะฝัั, ะทะฐะฟัะพั ะพะฑัะฐะฑะฐััะฒะฐะตััั')
# ัะพะพะฑัะตะฝะธะต ะพ ัะพะผ, ััะพ ะฝะฐะดะพ ะฟะพะดะพะถะดะฐัั ะฟะพะบะฐ ะฑะพั ะฟะพะปััะธั ะดะฐะฝะฝัะต
mid <- bot$sendMessage(chat_id = update$from_chat_id(),
text = "ะะพะดะพะถะดะธัะต ะฝะตัะบะพะปัะบะพ ะผะธะฝัั ะฟะพะบะฐ, ั ัะพะฑะตัั ะดะฐะฝะฝัะต ะฟะพ ะฒัะฑัะฐะฝะฝะพะผั ะฅะฐะฑั")
# ะฟะฐััะธะผ ะฅะฐะฑั
posts <- head(habr_hub_posts(hub, 1), 5)
# ัะดะฐะปัะตะผ ัะพะพะฑัะตะฝะธะต ะพ ัะพะผ, ััะพ ะฝะฐะดะพ ะฟะพะดะพะถะดะฐัั
bot$deleteMessage(update$from_chat_id(), mid$message_id)
# ัะพัะผะธััะตะผ ัะฟะธัะพะบ ะบะฝะพะฟะพะบ
keys <- lapply(1:5, function(x) list(InlineKeyboardButton(posts$title[x], url = posts$link[x])))
# ัะพัะผะธััะตะผ ะบะปะฐะฒะธะฐัััั
IKM <- InlineKeyboardMarkup(
inline_keyboard = keys
)
# ะพัะฟัะฐะฒะปัะตะผ ะธะฝัะพัะผะฐัะธั ะพ ะฟะพะณะพะดะต
bot$sendMessage(chat_id = update$from_chat_id(),
text = paste0("5 ะฝะฐะธะฑะพะปะตะต ัะฒะตะถะธั
ััะฐัะตะน ะธะท ะฅะฐะฑะฐ ", hub),
reply_markup = IKM)
}
# ัะพะทะดะฐัะผ ัะธะปัััั
## ัะพะพะฑัะตะฝะธั ั ัะตะบััะพะผ ะะพะณะพะดะฐ
MessageFilters$hubs <- BaseFilter(function(message) {
# ะฟัะพะฒะตััะตะผ ัะตะบัั ัะพะพะฑัะตะฝะธั
message$text == "ะกะฟะธัะพะบ ััะฐัะตะน"
}
)
# ัะพะทะดะฐัะผ ะพะฑัะฐะฑะพััะธะบะธ
h_start <- CommandHandler('start', start)
h_hubs <- MessageHandler(habs, filters = MessageFilters$hubs)
h_query_handler <- CallbackQueryHandler(answer_cb)
# ะดะพะฑะฐะฒะปัะตะผ ะพะฑัะฐะฑะพััะธะบะธ ะฒ ะดะธัะฟะตััะตั
updater <- updater +
h_start +
h_hubs +
h_query_handler
# ะทะฐะฟััะบะฐะตะผ ะฑะพัะฐ
updater$start_polling()
'เจคเฉเจนเจพเจกเฉ เจฌเฉเจ เจเฉเจเจจ' เจจเฉเฉฐ เจ เจธเจฒ เจเฉเจเจจ เจจเจพเจฒ เจฌเจฆเจฒเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฐเฉเจเจค เจเฉเจก เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจเจฒเจพเจ, เจเจฟเจธ เจฐเจพเจนเฉเจ เจคเฉเจธเฉเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจธเฉ เจฌเฉเจเจซเฉเจฆเจฐ (เจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเฉเจ เจฌเจฃเจพเจเจฃ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเฉเจคเฉ
เจชเจนเจฟเจฒเจพ เจฒเฉเจ ).
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจจเฉเฉฐ เจเจน เจจเจคเฉเจเจพ เจฎเจฟเจฒเฉเจเจพ:
เจ
เจธเฉเจ เจตเจฟเจงเฉ เจตเจฟเฉฑเจ เจเฉเจฃ เจฒเจ เจเจชเจฒเจฌเจง เจนเฉฑเจฌเจพเจ เจฆเฉ เจธเฉเจเฉ เจจเฉเฉฐ เจนเจพเจฐเจกเจเฉเจก เจเฉเจคเจพ เจนเฉ habs
:
## ะะตัะพะด ะฒัะทะพะฒะฐ Inine ะบะปะฐะฒะธะฐัััั
habs <- function(bot, update) {
IKM <- InlineKeyboardMarkup(
inline_keyboard = list(
list(
InlineKeyboardButton(text = 'R', callback_data = 'r'),
InlineKeyboardButton(text = 'Data Mining', callback_data = 'data_mining'),
InlineKeyboardButton(text = 'Data Engineering', callback_data = 'data_engineering')
),
list(
InlineKeyboardButton(text = 'Big Data', callback_data = 'bigdata'),
InlineKeyboardButton(text = 'Python', callback_data = 'python'),
InlineKeyboardButton(text = 'ะะธะทัะฐะปะธะทะฐัะธั ะดะฐะฝะฝัั
', callback_data = 'data_visualization')
)
)
)
# Send Inline Keyboard
bot$sendMessage(chat_id = update$message$chat_id,
text = "ะัะฑะตัะธัะต ะฅะฐะฑ",
reply_markup = IKM)
}
เจธเจพเจจเฉเฉฐ เจเจฎเจพเจเจก เจฆเฉ เจจเจพเจฒ เจจเจฟเจฐเจงเจพเจฐเจค เจนเฉฑเจฌ เจคเฉเจ เจฒเฉเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจฎเจฟเจฒเจฆเฉ เจนเฉ habr_hub_posts()
, เจชเฉเจเฉเจ เจคเฉเจ habR
. เจเจธเฉ เจธเจฎเฉเจ, เจ
เจธเฉเจ เจฆเฉฑเจธเจฆเฉ เจนเจพเจ เจเจฟ เจธเจพเจจเฉเฉฐ เจชเฉเจฐเฉ เจธเจฎเฉเจ เจฒเจ เจฒเฉเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจธเจฟเจฐเจซเจผ เจชเจนเจฟเจฒเฉ เจชเฉฐเจจเฉ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟเจธ 'เจคเฉ 20 เจฒเฉเจ เจธเจฅเจฟเจค เจนเจจเฅค เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจจเจคเฉเจเฉ เจธเจพเจฐเจฃเฉ เจคเฉเจ head()
เจ
เจธเฉเจ เจธเจฟเจฐเจซเจผ เจเฉเจเฉ เจฆเฉ 5 เจจเฉเฉฐ เจเฉฑเจกเจฆเฉ เจนเจพเจ, เจเฉ เจเจฟ เจธเจญ เจคเฉเจ เจคเจพเจเจผเจพ เจฒเฉเจ เจนเจจเฅค
# ะฟะฐััะธะผ ะฅะฐะฑั
posts <- head(habr_hub_posts(hub, 1), 5)
เจคเจฐเจ เจชเจฟเจเจฒเฉ เจฌเฉเจ เจฆเฉ เจธเจฎเจพเจจ เจนเฉ, เจชเจฐ เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจฐเจเฉเจเจฒ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจจเจฒเจพเจเจจ เจเฉเจฌเฉเจฐเจก เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเจพเจ lapply()
.
# ัะพัะผะธััะตะผ ัะฟะธัะพะบ ะบะฝะพะฟะพะบ
keys <- lapply(1:5, function(x) list(InlineKeyboardButton(posts$title[x], url = posts$link[x])))
# ัะพัะผะธััะตะผ ะบะปะฐะฒะธะฐัััั
IKM <- InlineKeyboardMarkup(
inline_keyboard = keys
)
เจ
เจธเฉเจ เจฒเฉเจ เจฆเจพ เจธเจฟเจฐเจฒเฉเจ เจฌเจเจจ เจเฉเจเจธเจ เจตเจฟเฉฑเจ เจชเจพ เจฆเจฟเฉฐเจฆเฉ เจนเจพเจ posts$title[x]
, เจ
เจคเฉ เจฆเจฒเฉเจฒ เจตเจฟเฉฑเจ url
เจฒเฉเจ เจฆเจพ เจฒเจฟเฉฐเจ: url = posts$link[x]
.
เจ เฉฑเจเฉ, เจ เจธเฉเจ เจเฉฑเจ เจซเจฟเจฒเจเจฐ, เจนเฉเจเจกเจฒเจฐ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจชเจฃเจพ เจฌเฉเจ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
เจธเจฟเฉฑเจเจพ
เจนเฉเจฃ เจเฉ เจฌเฉเจ เจคเฉเจธเฉเจ เจฒเจฟเจเจฆเฉ เจนเฉ, เจเจน เจตเจฐเจคเจฃ เจฒเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉเจฃเจเฉ, เจเจธ เจคเฉฑเจฅ เจฆเฉ เจเจพเจฐเจจ เจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจฎเจพเจเจกเจพเจ เจฆเจฐเจ เจเจฐเจจ เจฆเฉ เจฌเจเจพเจ เจเฉเจฌเฉเจฐเจก เจคเฉเจ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจเฉฑเจเฉ-เจเฉฑเจ, เจเจฆเฉเจ เจเฉฑเจ เจธเจฎเจพเจฐเจเจซเจผเฉเจจ เจฐเจพเจนเฉเจ เจเฉฑเจ เจฌเฉเจ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจเฉเจฌเฉเจฐเจก เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเจพเจซเจผเฉ เจธเจฐเจฒ เจฌเจฃเจพ เจฆเฉเจตเฉเจเจพเฅค
เจ เจเจฒเฉ เจฒเฉเจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจน เจชเจคเจพ เจฒเจเจพเจตเจพเจเจเฉ เจเจฟ เจเฉฑเจ เจฌเฉเจ เจจเจพเจฒ เจเฉฑเจ เจฒเจพเจเจผเฉเจเจฒ เจกเจพเจเจฒเจพเจ เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจ เจเจพเจตเฉ เจ เจคเฉ เจกเฉเจเจพเจฌเฉเจธ เจจเจพเจฒ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเฉเจคเจพ เจเจพเจตเฉเฅค
เจธเจฐเฉเจค: www.habr.com