R로 텔레그램봇에 메세지 보내기
2019. 6. 2. 13:12ㆍR/Advanced
텔레그램봇을 활용하면, R에서 수집한 정보를 외부에서 메신저를 통해서 확인할 수 있다. R 스크립트를 일정 시간마다 정기적으로 돌리면서 결과값을 보내거나, 혹은 특정 조건이 발견되었을 때 경고 메세지를 발송할 수 있다.
텔레그램 봇 생성하기
PC버전 텔레그램을 설치한 후 BotFather를 검색해서 채널에 들어간다
/newbot 명령을 입력한 후 새로운 봇을 생성한다 (봇의 이름은 반드시 bot으로 끝내야 하며 first_name과 username을 별도로 입력해줘야 한다
봇생성을 완료하면, API Token이라고 표시된 곳에 출력되는 값을 복사한다
install.packages('telegram.bot')
library(telegram.bot)
R에서 telegram.bot 패키지를 설치한다
bot = Bot(token = 'ENTER YOUR API Toekn')
print(bot$getMe())
> print(bot$getMe())
$id
[1] id가 이 곳에 출력
$is_bot
[1] TRUE
$first_name
[1] "봇의 first name"
$username
[1] "봇의 username"
봇에 메세지 보내기
API가 정상적으로 입력된 것을 확인할 수 있다. 이제 텔레그램에서 봇과 대화를 해야 한다. 봇이 메세지를 먼저 보낼 수 없기 때문에, 텔레그램에서 봇을 찾아서 먼저 대화를 걸어야 한다
검색 창에 봇의 username을 치면 자신의 봇을 찾을 수 있다. 채팅창을 열고 메세지를 전송한다. 이제 봇과 대화중인 대화방을 R에서 찾아야 한다
updates = bot$getUpdates()
updates[[1]]$message$chat
> updates[[1]]$message$chat
$id
[1] 대화방 id가 출력
$first_name
[1] "사용자의 firstname"
$last_name
[1] "사용자의 lastname"
$type
[1] "private"
대화방의 id를 변수로 저장한 다음, 봇에게 메세지를 보내보자
chat_id = updates[[1]]$message$chat$id
chat_id
bot$sendMessage(chat_id = chat_id, text = 'hello bot!')
채팅방으로 메세지가 전송된 것을 알 수 있다
'R > Advanced' 카테고리의 다른 글
ggmap을 사용하여 서울 지하철 역 위치 및 사용자 수 표시 (0) | 2019.05.07 |
---|---|
Tidyr을 활용한 데이터 정리 (0) | 2019.04.18 |