채팅 프로그램으로만 알고 있는 텔레그램(telegram)의 기능 중 봇(bot)을 이용해서 원하는 정보를 자동으로 모아 확인할 수 있는 방법을 설명한다.
개인용도의 채팅창이라고 볼 수 있는데, 이 곳에 여러가지 원하는 정보를 보내서 볼 수 있다. 예를 들면, 특정 키워드의 기사를 검색해서 결과를 봇(bot)에 보내면 실시간으로 채팅창에서 확인이 가능하다.
이걸 cron 과 연동시킨다면, 매일 아침 7시에 주식 관련 뉴스를 자동으로 크롤링해서 제목과 링크만 메세지로 확인이 가능하다. 이런 식으로 여러가지로 활용할 수 있는 분야가 다양하다.
이미 텔레그램을 설치해서 사용 중이라는 가정하에 설명하겠다.
먼저 앱의 검색 창에 'BotFather' 로 검색한다.
결과가 나오면, 'Open' 을 눌러 채팅창을 열고, 아래를 입력한다.
/newbot
'Please choose a name for your bot' 메세지가 나오면, bot 의 이름을 입력한다. 왠만한 이름들은 이미 등록되어 있기 때문에, 뒤에 숫자나 특수문자를 넣어야 한다. 또 이름 뒤에 'bot' 으로 끝나야 한다.
신간 서적의 뉴스를 모아서 보고 싶기 때문에, 여기서는
Newbook2015_bot
로 입력했다.
'Done! Congratulations on your new bot' 이라는 문장이 나오면, 성공적으로 만들어진 것이다.
Use this token to access the HTTP API : 987987XXXXXxx
위의 나온 토큰 값을 잘 보관해야 한다. 나중에 프로그래밍을 할 때 필요하기 때문이다. 이 값과 함께 Chat ID 라는 걸 알아내야 한다.
이를 위해서 웹 브라우저 주소 창에 아래를 입력하고 접속한다.
https://api.telegram.org/bot987987XXXXXxx/getUpdates
이때 https://api.telegram.org/bot 글자 뒤에 앞선 토큰 값을 붙여넣고 '/getUpdates' 를 입력하는 것이다. 아래와 같은 결과가 출력될 것이다.
{"ok":true,"result":[]}
이제 앞서 만든 봇 이름인 'Newbook2015_bot' 으로 텔레그램에서 검색한다. 나오면, 'START' 버튼을 누른다. 채팅창이 열리면, 'test' 라고 입력한다. 그리고 웹 브라우저 창을 reload 한다.
{"ok":true,"result":[{"update_id":181129066,
"message":{"message_id":1,"from":{"id":8335750000,"is_bot":false,"first_name":"likeWind","language_code":"en"},"chat":{"id":8335757102,"first_name":"likeWind","type":"private"},"date":1768704534,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":181129067,
"message":{"message_id":2,"from":{"id":8335750000,"is_bot":false,"first_name":"likeWind","language_code":"en"},"chat":{"id":8335757102,"first_name":"likeWind","type":"private"},"date":1768704539,"text":"Test"}}]}
뭔가 내용이 더 출력되었다. 여기서 8335750000 가 Chat ID 이다. 토큰과 함께 잘 보관해야 한다. 이제 텔레그램 쪽에서의 설정은 끝났다.
뉴스 사이트를 특정 키워드로 검색한 결과를 크롤링해서 앞서 만든 텔레그램 봇에 보내는 php 프로그래밍을 할 것이다. 여기서 언어를 php 로 하는 것은 호스팅 서버에서 지원되는 유일한 언어이기 때문이다.