알림: IFTTT가 텔레그램을 이제 정식 지원하기 때문에 이 글을 보시기 전에 먼저 새로운 방법을 시도해보시기 바랍니다. 그 쪽이 더 쉽거든요.

보러가기:  텔레그램과 IFTTT 서비스를 결합하여 나만의 인공지능 비서를 만들자

텔레그램 채널을 운영하거나, 또는 그룹채팅방의 관리자일 때 주기적으로 공지사항 올리는 게 번거로울 수 있습니다. 가령 과대표인데 홈페이지 공지사항 나오면 매번 링크 따서 단톡방에 올려줘야 하는 경우, RSS 리더로 받아보면 해결될 일을 단지 메신저 환경이라는 이유로 사람이 복사-붙여넣기 작업을 해야 하는 상황이 생기지요.

이럴 때 텔레그램 봇(bot)을 만들어 일을 시키면 좋습니다. 서버를 마련해서 본격적으로 복잡한 일을 시킬 수도 있고, 대화형 서비스를 제공할 수도 있겠지만 그런 건 제 능력을 벗어난 일이므로 1) 봇을 만들고, 2) 인터넷에 있는 다른 서비스와 연동하여, 3) 자동으로 내 대신 단톡방에 글을 올리는 심부름을 할 수 있도록 구성하는 것만 살펴보도록 하죠.

뭐 이것도 사실 구글링하면 다 나오는 얘기이지만, 저처럼 초보인 분들을 위해 … 정리합니다.

목표

트위터나 페이스북페이지, 또는 블로그에 새 글이 발행되었을 때 자동으로 긁어다가 내가 운영하는 채널에 포스팅하도록 하기.

단계

  1. 일을 대신 해 줄 텔레그램 봇을 만든다. API 토큰을 얻는다.
  2. IFTTT 서비스로 자세히 조건을 만들어주고 원하는 조건에 봇이 나 대신 채널에 포스팅하도록 한다.

텔레그램 봇 만들기

봇파더(@Botfather)를 통해 만들면 됩니다.

  1. 친구초대 방식으로 채팅방에 입장하여
  2. /help 치면 명령어가 정리되어 나옵니다.
  3. /newbot 명령어로 새 봇을 만들겠다고 선언하고
  4. name을 정해달라고 물어오면, “이것저것링크” 등과 같이 이름을 정해줍니다.
  5. username을 물어보면 영문과 숫자를 사용하여 정해줍니다. 단, 끝문자는 bot으로 끝나야 합니다. 저는 “ththlink_Bot” 이라고 적었네요.
  6. 그럼 token이라면서 복잡한 문자열을 알려주는데, 잘 메모해두도록 합니다. 채팅방 바깥에서 이 봇에게 명령을 내리려면 반드시 필요합니다.

IFTTT 설정 (예시)

이제 IFTTT.com에서 새로운 레시피를 만듭니다. 가령 저는 모든 트위터 게시물이 아니라, 트위터에 특정 해시태그를 달아서 올린 게시물만 텔레그램 봇이 읽어들여 내가 운영하는 텔레그램 채널에 업로드했으면 좋겠습니다.

이런 경우엔 IF 영역에 관련 조건을 만들어주시면 됩니다. 설명은 생략하지요.

중요한 건 THEN(조건에 따른 결과액션) 부분인데, 채널은 Maker로 지정해주시면 됩니다. 일종의 DIY 채널입니다. 텔레그램 채널을 따로 지원하고 있지 않기 때문에 이 채널의 상세 설정을 통해 결과적으로 텔레그램에 글을 올리도록 하는 거죠.

우선 URL에는 내가 만든 텔레그램봇이 메시지를 보내도록 명령하는 주소를 적어줘야 합니다. 아까 받아둔 token이 있을텐데요, 가령 토큰이 123:abcde라고 할 때, 아래와 같은 형식으로 주소를 작성하여 URL 필드에 넣어줍니다.

https://api.telegram.org/bot123:abcde/SendMessage 

이렇게 하면 내가 만든 텔레그램 봇이 문자를 보내도록 명령할 수 있습니다. 123:abcde는 열쇠키이죠. 이 키값을 알면 다른 사람도 내 봇에게 명령을 내릴 수 있겠죠? 따라서 키값을 잘 보관해야 합니다.

두 번째로, 방식(Method)에는 POST를 적어주시고, 세 번째 Content Type에는 application/json 을 선택해주세요.

Method : POST
Content Type: application/json

이제 “Body”에는 실제 전송할 메시지 내용을 적습니다. 여기에 “바보”라고 쓰면 조건이 될 때마다 봇이 “바보”라는 메시지를 날릴 겁니다. 대신 “{{Text}}”와 같이 적으면 조건이 될 때, 즉 지금의 경우엔 내가 정한 특정 해시태그가 있는 글이 올라올 때, 텔레그램 봇이 그 해당 트윗의 내용 텍스트를 텔레그램에 올리게 됩니다.

하늘색 버튼을 누르면 다른 내용도 삽입할 수 있도록 되어 있습니다. 한 개만 쓸 수 있는 것도 아니고 다양하게 조합하여 사용할 수 있습니다.

우리가 원하는 것은 봇이 모든 채팅방에서 말하게 하려는 게 아니라, 특정 단톡방이나 채널 안에서 글을 올리도록 하는 것입니다. 이를 위해 아래와 같은 형식으로 Body에 넣어주세요.

{"chat\_id": "@채널아이디", "text": "{{TextNoHashtag}}"} 

두 군데만 고쳐주시면 됩니다. 먼저 “@채널아이디”를 고쳐주세요. 단톡방 아이디도 됩니다. 비공개로만 접속할 수 있는 채널은 아이디가 없어서 적기 힘들 거 같습니다. (어떻게 하는지 모릅니다..)

그리고 {{TextNoHashtag}} 대신 다른 것을 넣고 싶으면 넣으세요. 저는 해시태그를 제외한 트윗 내용을 넣고 싶어서 이렇게 정했습니다.

채널에 봇 추가

이제 봇이 포스팅을 실제로 수행할 채널에 봇을 관리자로 추가합니다. 그리고 일을 잘 하는지 기다려보면 되겠습니다.

추가 아이디어

IFTTT에서는 복수의 레시피를 만들 수 있기 때문에 다양한 작업을 봇에게 명령내릴 수 있습니다. 사실 봇에게 이런 작업을 시키려면 사람이 브라우저로 매번 명령을 내리거나 다른 서비스를 통해야 하겠지만, IFTTT 만으로 상당히 안정적으로 구성할 수 있습니다. 기타 무슨무슨 서비스를 대행해준다는 텔레그램 봇을 구독하는 것도 방법이지만, 내 취향대로 손쉽게 봇을 구성할 수 있게 되는 거죠. 게다가 특정 대화방에서 봇이 하는 일을 따로따로 지정하는 것도 손쉽습니다.

개인이 나 혼자만 가입한 채널을 만들고, 거기에 봇을 추가한 뒤에, 개인용 알림도구로 사용해도 좋습니다. IFTTT 에는 아주 많은 채널이 있거든요. 특정 인스타그램 계정에 사진이 올라오면, 오늘 눈 올 확률이 있으면, 드롭박스 특정 공유폴더에 새 파일이 추가되면 .. 등등.. 아주 다양한 조건에서 나에게 텔레그램 메시지를 보내도록 할 수 있습니다.

메신저로 알림을 받는 건 확실히 별도의 앱이나 이메일로 받는 것보다 안 놓치고 잘 보게 되더군요. 느려터진 Pushbullet이나 Boxcar보다 더 좋더군요 저는.

(2015년 11월)