본문 바로가기

연재/Project Jarvis

[IFTTT] 텔레그램 봇으로 최신 Feed 받아보기



텔레그램 봇으로 최신 Feed 받아보기



  텔레그램 봇이 여러가지 용도로 사용이 가능한데, 그 중 제가 현재 유용하게 사용하고 있는 것을 소개해드리려고 합니다. 바로 Feed를 받아보는 용도로 활용하는 것인데요, 아래 스크린샷처럼 활용이 가능합니다.





  사용을 위해선 우선 Bot을 만들어야 합니다. 텔레그램에서 @BotFather를 친구추가 합니다.

  그 다음 /newbot 명령어를 통해서 진행을 하시면 됩니다. 그러면..






Use this token to access the HTTP API:

186115701:AAHBzzZShEnm6toxf1qIAyQx08z1IOGscRE


  위 처럼 토큰을 주게 됩니다. 이것을 바탕으로 IFTTT Recipe를 만들 수 있습니다.


  우선 Bot의 메시지를 전달하는 것은 SendMessage라는 HTTP POST Request를 날려줌으로써 생성할 수 있습니다. 위의 HTTP API Token을 이용하여 아래와 같은 주소로 접근하면 되는 것인데요,


https://api.telegram.org/bot186115701:AAHBzzZShEnm6toxf1qIAyQx08z1IOGscRE/SendMessage



  위 예시처럼 bot 뒷부분에 발급받은 Key를 넣으면 됩니다. 이제 IFTTT Recipe를 생성할 차례입니다.


IF THIS THEN THAT


  THIS에 해당하는 부분은 Feed 입니다. New Feed Item으로 선택하고, 구독을 원하는 Feed의 주소를 입력합니다. 제 블로그로 테스트를 해보자면 http://blog.readiz.com/rss 겠네요.





IF THIS THEN THAT


  이 부분이 중요한데요, 위에서 생성한 SendMessage 주소를 잘 기억하시기 바랍니다. 그리고 나서 아래처럼 설정합니다. 플러그인은 Maker를 선택합니다. (이 플러그인은 Web Request를 보낼 수 있습니다)




1. URL: 위에서 설명드린 URL을 적습니다.

2. Method: POST로 설정 - GET도 상관없긴 합니다.

3. Content Type: JSON을 권장합니다. 그렇지만 form encoded도 동작하긴 하더군요.

4. Body: 여기가 중요합니다.

  실제로 보낼 메시지가 적히는 구간이고, 우선은 샘플로 아래처럼 작성해 보았습니다.


{"chat_id": "@readiz", "text": "<<<{{EntryTitle}}>>> - <<<{{EntryUrl}}>>>"}


  이 형식은 일반적인 JSON 형식입니다. {}로 싸여져 있고 Key : Value 의 순서대로 값이 들어가는데, 당장 필요한 것은 메시지를 받을 대상과 그 내용이 되겠죠.

  chat_id는 실제로 이 내용을 받을 사람의 ID를 쓰면 됩니다. 그리고 text에 포함되는 EntryTitle과 EntryURL은 각각 Feed의 Title과 URL 되겠습니다. Description 같은 것도 추가가 가능하니 원하시면 옆의 비커모양(?)의 아이콘을 누르시고 받아보실 내용 추가하시면 되겠습니다.


  이렇게 추가하시고 원하는 Feed에 대해서 작업을 반복하시면 나만의 텔레그램 구독 머신이 탄생하겠습니다. 다만 IFTTT가 실시간으로 New Feed를 긁어오는 것은 아니니 약간의 시간 지연이 있는 것은 감안해야 할 것입니다.



  나중에 소개드리겠지만 이 방법의 장점은 각종 알림들의 Channel을 Telegram으로 통합시킬 수 있고, Telegram은 거의 모든 플랫폼을 지원한다는데에 있습니다. 더 깊은 활용법은 추후의 포스팅에서 드리도록 하죠..