텔레그램 채널에 봇(bot)으로 자동 포스팅하기

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

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

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

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

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

목표

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

텔레그램 채널에 봇(bot)으로 자동 포스팅하기 더보기

Workflow앱으로 워드프레스 블로그 자동 발행하기

아이폰에서 작업자동화 목적으로 사용할 수 있는 Workflow앱을 활용해서 드롭박스에 미리 작성해둔 .txt 파일을 워드프레스로 바로 발행할 수 있습니다. 물론 워드프레스 앱을 사용해도 되지만, 드롭박스 기반 텍스트 에디터 사용하기 좋아하시면서 워드프레스 발행도 즐겨하시는 경우에 고려해보세요.

그러니까, 대강의 순서가 아래와 같죠.

드롭박스로 동기화하며 글쓰기

드롭박스 공간을 통해 동기화하면서 아이폰, 맥, PC에서 연속적으로 글쓰기를 합니다. 아이폰에서 Byword나 Nebulous Notes, 맥북에서 Scrivener나 Ulysses, PC에서 WriteMonkey나 MarkdownPad2와 같이 플래폼마다 가장 좋아하는 프로그램을 사용하여 똑같은 글을 열어 계속 편집할 수 있게 됩니다. 저장된 .txt파일이나 .md파일은 호환성이 매우 높아 특별한 프로그램이 없어도 누구나 내용을 바로 확인할 수 있으며, 파일이 일단 사용하는 컴퓨터의 로컬 저장소에 저장되어 있으므로 브라우저에서 글 쓰는 것보다 안전하고 다루기 쉽습니다.

워드프레스로 발행하기

이렇게 쓴 글을 워드프레스 블로그로 발행하는 방법은 몇 가지가 있겠죠. 직접 워드프레스 관리자 페이지에 접속하여 업로드하거나, 젯팩의 부가기능을 활용해 이메일로 보내기도 가능합니다. 맥북에서는 관리자 화면에 앱을 통해서 바로 접근할 수 있습니다. 드롭박스에서 공유링크를 얻어서 커스텀 필드에 붙여넣으면 자동으로 본문에 반영해주고 추후에 드롭박스에서 파일의 내용을 수정하고 저장하면 바로 블로그 글에도 연동해서 반영해주는 플러그인도 있습니다. Byword나 몇몇 앱은 자체적으로 워드프레스 발행 기능을 제공하기도 합니다.

그런데 결국 드롭박스에 완성된 글이 있는 경우에 이제는 됐다 싶을 때 말이죠. 한 방에 발행하는 게 은근히 귀찮더라고요. 워드프레스 앱의 에디터가 나쁜 건 아니지만 또 처음부터 거기서 쓰고 싶은 생각은 없다는 거죠.

얼마전에 Workflow에서 워드프레스 발행 액션을 지원한다는 소식을 듣고 사용중인데 지금까지는 매우 만족스럽습니다. 제가 사용하는 예제를 올려드릴테니 1) 드롭박스에 텍스트 파일로 메모하고 2) 그 내용을 재빨리 워드프레스로 발행하는 걸 원하신다면 한 번 검토해보세요.

워크플로우 스크린샷

workflow

설명

저는 위 워크플로우를 아이폰 홈스크린에 빼두어서, 버튼 한 번만 누르면 드롭박스에 있는 텍스트 파일 내용을 제 블로그로 자동 발행하도록 해두었습니다.

Date 액션

Use – Current Date 을 선택하여 현재 날짜를 사용하기로 합니다.

Format Date 액션

날짜를 표시하는 형식을 Custom 으로 설정합니다. 오늘 날짜 앞에 매번 “이것저것링크”라는 문구를 넣고 싶어서 최종적으로 Format String에 이것저것링크 yyyy-MM-dd (EEE)와 같이 적었습니다. 이는 오늘이 2015년 11월 28일 경우 이것저것링크 2015-11-28 (토)와 같은 문자열을 생성하라는 뜻입니다.

Add to Variable

이제 위에서 만든 문자열 전체에 ddate라는 변수 이름을 부여해서 저장해둡니다.

Get Files from Dropbox

다음은 드롭박스에 저장된 텍스트 파일을 불러올 차례입니다. “Show Dropbox Picker”에 체크하여 직접 선택할 수도 있지만, 매번 같은 파일을 불러올 거라면 경로를 써두면 되겠습니다.

제 경우엔 IFTTT 서비스를 통해 트위터에서 글을 쓰면 드롭박스의 Notes 폴더 안에 ththlink.txt 파일을 만들어 내용을 차곡차곡 붙여넣도록 해두었습니다. 따라서 고정된 경로에 늘 텍스트파일이 있는 거죠. 이 경로를 File Path에 지정하였습니다.

Error If Not Found에 체크하여 만약 파일을 찾지 못할 경우 에러 메시지를 띄우도록 합니다.

Set Name

이제 찾아낸 드롭박스 파일의 파일명을 변경합니다. 파일명은 고정된 게 아니라 항상 현재 날짜 중심으로 아까 변수로 지정해둔 ddate를 활용하여 이것저것링크 2015-11-28 (토).txt 와 같이 지정할 수 있도록 ddate.txt로 정하였습니다. 이 때 ddate부분은 키보드로 입력하는 게 아니라 Variables.. 메뉴를 통해 지정해주어야 해요.

Save to Dropbox

이제 정해진 파일명으로 아까 얻은 그 텍스트파일을 지정한 장소에 저장하도록 합니다. 저는 Notes 폴더 안에 있는 또다른 서브폴더 안에 텍스트 파일을 저장하기 원했습니다.

Post to WordPress

이제 워드프레스로 텍스트 파일의 내용을 발행합니다. 이 때 Title은 미리 지정해둔 변수 ddate로 지정하여 “이것저것링크 2015-11-28 (토)”와 같은 문자열이 블로그 글의 제목이 될 수 있도록 했습니다. 기타 타입, 포맷, 공개여부, 카테고리 등을 지정해주면 됩니다.

Get Files from Dropbox

여기서 끝나도 되지만 다시 Notes 폴더에 그대로 남아있는 ththlink.txt 파일을 불러냅니다.

Delete Files from Dropbox

이제 이 파일을 삭제합니다. 왜냐하면 발행이 끝났고, 이미 서브폴더에 백업본이 하나 저장되어 있으니까요. 파일을 지워야 새로 도착하는 내용부터 다시 새로운 ththlink.txt 안에 쌓일 수 있을 겁니다.

지우기 전에 Confirm 할 수 있도록 체크하여 원하지 않는 경우 건너뛸 수 있도록 합니다.

추가 팁

“Make Rich Text from Markdown” 액션을 사용하면 기존에 .md 형식으로 작성해둔 드롭박스의 파일을 불러내어 이것을 바로 발행할 수 있는 포맷으로 변환한 뒤에 워드프레스로 전달할 수 있습니다. 제가 보니 이미지 링크 포함해서 아주 잘 작동하더군요.

좀 복잡해보일 수 있는데 사실 간단합니다. 아이폰/아이패드 등에서 드롭박스에 텍스트/마크다운으로 글 쓰고, 별도로 워드프레스 앱을 실행할 필요 없이 신속하게 발행할 수 있는 방법이라고 생각합니다. 설정은 좀 귀찮지만 써보면 속이 다 시원할 정도로 편해요.

(2015년 11월)

이것저것링크 아이폰에서 발행 화면 캡처

블로그 개설기에 이어서 실제 트리거하는 장면을 캡처로 떠보았다. 매일하는 이 발행 작업에 소요되는 실제 시간은 30초 정도이다.

  1. 오후 특정 시점에 Due를 통해 발행 시점을 알리는 미리알림이 뜨면,
  2. 홈화면에 있는 Workflow 액션을 실행하고,
  3. 텍스트에디터의 문서 제목을 수정하는 것으로 발행이 완료.

예전에 비하면 무척 간편해졌다고 자평하고는 있지만 역시 세팅하기까지 머리가 아팠다.

Workflow 액션은
1. "Get Files from Dropbox" 로 IFTTT를 통해 쌓여있던 텍스트파일을 얻어서,
2. "Save to Dropbox"로 이 파일을 워드프레스 자동발행 플러그인과 연동된 위치로 옮긴다.
3. 다시 "Get Files from Dropbox"로 1.의 파일 주소를 불러와서,
4. "Delete Files from Dropbox"로 해당 파일을 삭제하여 결과적으로 파일을 잘라내기한다.
5. "Date"로 현재 날짜를 호출
6. "Format Date"로 현재 날짜를 "이것저것링크 yyyy-MM-dd" 형식으로 변환
7. "Copy to Clipboard"로 클립보드에 텍스트를 복사
8. "Show Notification"으로 성공했음을 팝업 표시

사용한 텍스트에디터는 Notesy다. 이 작업 전용으로 쓰기 위해 다시 깔았다. 위 액션을 통해 결과적으로 텍스트파일은 "Post_via_Dropbox"폴더에 안착하는데, 이 폴더만 싱크하도록 설정해두고 앱을 실행하여 신속하게 텍스트파일로 들어가 제목만 바꿀 수 있도록 하였다. 제목은 확장자가 생략되어 표시된다. 이미 클립보드에 "이것저것링크 오늘날짜" 형식으로 텍스트가 있으므로 붙여넣기하고 빠져나오면 끝.

이 작업이 모두 끝나면 워드프레스 플러그인에 의해 잠시 후 포스트가 자동 발행(텍스트파일명=포스트 제목)되고,발행된 텍스트파일은 서브폴더로 옮겨진다.

(2015년 11월)

이것저것링크 블로그 개설기 – 트위터 글 선별해서 워드프레스 백업

트위터를 주로 북마크로 사용하고 있습니다. 브라우저 뿐 아니라 많은 스마트폰 앱에서 트위터로 내보내는 건 잘 지원해주기도 하고, 타임라인에 이미 재밌는 정보가 많아서 바로 긁어담기가 수월하거든요.

검색하고 싶다

트위터에 모아둔 걸 다시 필요할 때 검색해서 꺼내보기 불편해서 일단 에버노트의 특정 노트북에 자동 백업하는 IFTTT 레시피를 사용합니다. 트위터 백업된 노트북에 한정해서 키워드로 검색하면 지난 자료를 잘 꺼내볼 수 있어요.

구분하기

그런데 트위터에는 1) 가끔 혼자 헛소리도 쓰고, 2) 누군가의 질문에 답할(reply) 때도 있는데 이 모든 트윗이 정보성 글과 마구 섞여 있지요.

북마크용으로 날리는 트윗만 골라서 백업하고 싶은 생각이 들었습니다.

  1. 내가 날리는 트윗에서 정보성 북마크와 재미로 혼잣말 하는 걸 구분한다.
  2. 대화는 제외한다.

해시태그와 관심글

먼저 생각난 건 간단하게, 북마크용으로 트윗을 날릴 때는 해시태그를 달기로 합니다. #lk 태그를 달기로 했지요. 아이폰에서 키보드 단축키로 ㄹㅋ를 치면 #lk가 나오게 해둬서 한글 타이핑하다가 편하게 해시태그를 넣을 수 있도록 했네요.

그리고 IFTTT 레시피에서 특정 해시태그를 포함한 트윗만 따로 백업하도록 설정하는 레시피를 만들었습니다.

하지만 다른 사람의 트윗 자체가 이미 훌륭해서 그대로 담고 싶은 경우에는 해시태그가 없어서 인용 방식으로 구RT 를 사용해서 내용을 그대로 퍼다가 해시태그를 인위적으로 덧붙여야 했죠.

항의를 몇 번 받은 후에, 이런 방식을 버리고 관심글 등록하면 #lk 붙은 트윗이 백업되는 곳과 같은 에버노트 노트북에 백업되도록 IFTTT 레시피를 하나 더 만들었습니다. 지금은 마음에 드는 다른 분 트윗을 보면 그대로 RT하고, 관심(하트) 추가하는 동작만 하고 있습니다. 때로 리트윗은 하지만, 북마크할 의도가 없을 때는 하트 표시를 주지 않고요. 북마크 의도가 없지만 나중에 다시 보고 싶은 트윗은 귀찮지만 에버노트로 보내거나 합니다. 그런데 그런 경우는 많진 않더라고요.

발행하기 1 – 드롭박스 수작업

그러다가 내가 모은 이 많은 링크를 다른 사람도 볼 수 있게 정리해서 올리고 싶어집니다. 어느 정도 모이면 끊어서 발행하도록 말이지요. 아주 오래 전에 미투데이로 비슷한 작업을 할 땐 가령 25개 쌓이면 모아서 블로그 자동 발행해주는 훌륭한 기능이 있었지만, 트위터는 그런 걸 해주지 않으니까요. 게다가 트윗을 백업해주는 서비스들이 그 때 꽤 여러 개 있었지만 다들 못생겼거나, 이상한 블릿을 앞에 박아버리면서 보기 흉한 화면 배열을 강제하는 코드를 제공해준다거나, 무엇보다도 reply 빼고, 해시태그만 골라서 정리해주는 서비스는 없었어요.

그래서 블로그에 바로 붙일 수 있도록 html 태그를 좀 집어넣어서 줄 바꿈도 적당히 해주면서 북마크 목적의 트윗만 드롭박스에 .txt파일로 쌓이도록 다시 IFTTT 레시피를 만들었습니다. 백업되는 방식을 ‘append’로 하면 한 문서에 차곡차곡 트윗이 쌓입니다. 그리고 적당히 글이 쌓이면 블로그에 해당 코드를 복사해서 붙여넣고, 파일명을 바꿔서 archive 하는 방식으로 마감한 후, 다시 새 글이 들어오면 한참 뒤에 발행하고… 를 반복했지요.

모바일에서는 작업이 거의 불가능하거나 너무 번거로웠죠. 그 후 구글드라이브로 주 저장소를 바꿉니다. 레시피에서는 태그를 써넣으면 구글드라이브에는 html 적용된 상태로 들어오더라고요. 그럼 워드프레스 편집기에 바로 붙여넣어버리니 편하더군요.

습관이 되니 많이 힘든 건 아니었지만 정말 갈수록 귀찮더라는.

발행하기 2 – 에버노트 노트북 공유

그래서 블로그 발행을 포기하고, 에버노트 노트북에 append 하면서 백업하고, 적당한 시점에 끊어서 문서명 바꿔주는 방식으로 변경했습니다.

에버노트 사용자의 경우 노트북 자체를 자신의 에버노트에 추가하면 과거의 모든 노트를 한꺼번에 가져갈 수 있고, 검색도 가능하니까요. 개별 노트의 공유 URL도 얻을 수 있어서 트위터나 페이스북에 뿌리기도 좋습니다.

하지만, 에버노트는 1) pocket 등의 서비스에서 본문이 안 보입니다. 2) RSS 리더 등에서도 역시 읽을 수 없습니다. 3) 프리미엄 사용자가 아닌 경우에 타인의 노트북을 추가하면서 자꾸 에러나 난다는 보고도 있었고요.

발행 3 – 다시 블로그 발행

이번에 다시 블로그 발행을 시도합니다. 플로우는 다음과 같습니다.

  1. 트위터에 내가 #lk태그를 포함해서 날린 트윗과,
  2. 관심(하트) 표시한 트윗이,
  3. 드롭박스의 Notes 폴더에 있는 ththlink.txt파일에 차곡차곡 쌓인다. (IFTTT 레시피)
  4. 이 때 보기좋게 표시되게 줄바꿈도 넣어주고, 선도 그어주고, 원문 링크도 표시되게 만져줌
  5. 아이폰의 Workflow 앱에서 액션을 만들었다. 이 액션은 1) Notes 폴더의 thththlink.txt파일을 2) 드롭박스 Apps폴더 안의 Post_via_Dropbox폴더로 이동시킨 후, 3) "이것저것링크 2015-11-15(현재날짜)" 형태의 텍스트를 클립보드에 복사한다.
  6. 위 액션을 매일 저녁 5시경 실행한다.
  7. 이제 드롭박스의 Post_via_Dropbox 폴더만 싱크하도록 연결해둔 텍스트 에디터 앱을 아이폰에서 열어 ththlink.txt파일의 제목을 누른 뒤, 제목을 지우고 붙여넣기를 실행하여 제목을 "이것저것링크 2015-11-30" 등과 같이 바꾼다.
  8. 30분 안에 블로그의 기본 카테고리로 글이 자동 발행된다.
  9. 드롭박스의 Post_via_Dropbox폴더의 텍스트파일은 서브 디렉토리 Posted로 이동된다.
  10. IFTTT 의 별도 레시피에 따라 일단 글이 발행되면 트위터와 페이스북페이지로 자동 발행된다.
  11. 블로그의 글은 피드버너의 설정에 따라 이메일 구독자에게 저녁에 메일로 전송된다.

이런 방식으로 이제 이것저것링크 블로그를 통해 발행을 시작합니다.

기타

현재 워드프레스에서 트윗을 필터링해서 모아 발행해주는 … 마음에 드는 플러그인이 없네요. 트위터의 기능 제한과 설정의 복잡함 때문에 차라리 IFTTT 와 드롭박스를 사용하는 게 낫겠다고 최종 결론을 내렸습니다.

Pocket(베타)과 Flipboard, Paper.li 등등 여러 서비스에서 자사의 플래폼 위에서 큐레이션을 하라고 권장하고 있습니다. 에버노트도 그렇고 해당 서비스의 신기한 기능에 의존하는 북마크 활동은 자료를 모으고 배포할 때 좀 더 편리하고 화면에서 보기에도 예쁠 수는 있지만 결국 해당 서비스를 사용할 의사가 없거나 발행인이 다른 방식으로 발행하고 싶은 생각이 들 때 꽤 난감해질 수 있겠더라고요. 그래서 저는 기본적으로는 텍스트만 계속 모으는 걸 더 좋아합니다..

(2015년 11월)

이것저것링크 시즌5 안내

이것저것링크는?

개인적으로 수집하는 정보성 링크 모음. 재밌는 글, 읽을거리, 지름신 정보 등등~ 개인 취향에 따라 아무런 원칙 없이 주워담아요.

지금까지 …

  • 시즌 1~4까지 수년 간 수만 개의 링크 정보를 공유
  • 시즌4는 2015년 3월부터 약 60 차례 에버노트를 통해 발행
  • 이메일 정기구독자 900여 명

시즌5 중요 알림

  • 이메일 발행 완전 중단
  • 에버노트 노트북 공유 중단(11월말까지 기존 노트북 공유 유지)
  • 텔레그램 채널 서비스 시작
  • 트위터 / 페이스북 페이지는 유지

어떻게 구경합니까?

텔레그램 채널 – 이것저것링크(ththlink)

  • 스마트폰으로 출근 시간에 쏴드려요.
  • 텔레그램에서 ththlink를 검색해서 입장하세요.
  • 지금 이 화면을 스마트폰에서 보고 계시면 다음 링크를 누르세요: telegram.me/ththlink
  • 자꾸 울리는 소리가 너무 시끄러우면 알림을 비활성화하세요
  • 채널 운영에 대한 질문은 이 게시물의 댓글로 주세요.

채널 사용 도움말

  • 채널의 설정 화면 – 공유한 사진/동영상 – 상단 메뉴에서 공유한 링크 선택하여 기존 게시된 모든 링크에 대하여 검색을 수행할 수 있음. (한글의 경우 조사 포함해서 써야 검색됨)
  • 채널에서 나갔다가 다시 입장해도 기존의 내용 보기 가능
  • 저는 링크만 수집할 뿐 모든 저작권과 이용 관련 제한은 원저자에게 문의하세요.
  • 스트림 형식으로 흘러가므로 다시 보고 싶은 링크는 즉시 복사하여 개인의 보관장소(에버노트, Pocket 등)에 저장하세요.

(2015년 9월)