brunch

You can make anything
by writing

C.S.Lewis

by 강한별 May 01. 2019

슬랙에서 책 url 수집하기

얼마 전부터 IT 뉴스나 TIL을 공유하는 슬랙 소모임을 시작했다. 그 중 책을 추천하는 채널도 있는데 슬랙의 특성 상 휘발되기 쉽다 보니 구글 스프레드 시트로 옮겨두면 좋겠다고 생각했다(회사 다닐 때부터 생각해놓고 퇴사 해서야 하는 사람). 그리고 슬랙은 무료 계정일 시 메시지 한도에 도달하면 메시지가 정말 날아가버린다. 적어둬야 한다... slack api를 확인해보니 channels.history에서 메시지를 받아올 수 있어 이번에 slack api를 만져보게 되었다.


단계는 다음과 같다.

1. slack api 에서 메시지 끌어오기(잡다한 인증 과정 포함)

2. 메시지에서 필요한 것만 정리하기(title, title_url, 추천사)

3. 정리한 데이터를 google spread sheet에 등록하기

4. 자동 정리를 위해 배치 설정하기


slack api에서 메시지 끌어오는 방법은 공식 문서나 python slack api를 검색하면 자세하게 나온다. 나는 아래 두 링크를 참조했다.



channels.history를 사용한 이유는 slack api 중 메시지 검색이 있었던 것 같은데 url이 검색되지 않아서였다. 어차피 매우 많은 메시지가 오가는 채널은 아니라서 전체 메시지를 가져와서 분류해도 상관 없었다. 기간만 설정해주면 ok. 기간은 lastet와 oldest로 설정 가능하다. 하면서 구욷이 헷갈릴만한 걸 적는다면 channel명을 적을 때 slack web에서 채널명(고유번호)를 확인해서 적어야 한다. 지금 생각해보니 그냥 string  값일리가 없는데 채널명 치면서 왜 안 돼 했던 내 시간 아깝다.. 영문과 숫자 혼합된 저 부분을 적어주면 된다.



책 추천은 보통 url과 텍스트(추천사)로 구성되어 있고  url이 있으면 슬랙이 자동으로 페이지 정보를 끌어와서 title이 생겨서 개이득이었다. 이 정보는 attachments에 담겨 있다.



전체 메시지를 가져와서 attachments가 있는 경우만 분류하고, 그 메시지를 다시 필요한 정보만 재가공했다. 추천사는 메시지를 입력할 때 한 번에 link와 추천사를 같이 입력하면 link는 attachments로 추천사는 text 로 분류되기 때문에 text를 그대로 가져다 쓰면 되었다. 만약 같이 입력하지 않으면 메시지가 나뉘어지는데 별도 처리하지 않고 한 번에 입력해달라고 부탁했다 ㅋㅋㅋㅋㅋ(..)


그 다음 google spread sheet인데 이것도 친절하게 설명된 게시물이 있어서 보면서 따라했다.



나중에 계속 스케쥴을 돌 때 자동으로 빈 줄부터 들어가야 하니까 문서 내 row 수를 읽어서 그 줄부터 들어갈 수 있게 해두었다.


결과물은 이렇게 된다.

회개하라 아니고 회계하라임


마지막으로 배치가 남았는데 남편이 google cloud scheduler를 추천해주었지만 결제를 해야 하고 그러면 카드 등록을 해야 하는 게 귀찮아서 그냥 손으로 돌리기로 했다.. 1달에 1번 돌리면 된다고 하니 남편이 그럴 거면 손으로 해도 되잖아.. 라고 말해서 납득했다. 더 좋은 방법을 아시는 분 계시면 언제라도 알려주세요.


혹시라도  google cloud scheduler에 관심 있으신 분은 여기를 참고하세요.

클라우드 펑션을 등록해서 cron으로 주기적으로 실행해주는 것 같다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari