먼저 slack을 처음 들어 보시는 분들도 계실 텐데, slack은 업무용 메신저로 많이 사용되는 소프트웨어로 쉽게 말해서 업무용 카카오톡이라고 보시면 되겠습니다.
slack의 장점으로는 자동화된 봇을 만들어서 다른 외부 프로그램과 연계하기 편리하게끔 되어 있습니다. 그래서 이번 시간에는 크레온 API와 연계하여 삼성전자의 현재 주가 정보를 slack 메시지를 통해서 전송하는 것을 구현해보겠습니다.
slack 로그인 및 워크스페이스 생성
1. 먼저 slack 공식 홈페이지, slack.com 으로 접속해 줍니다. 그리고 무료 체험 또는 로그인 버튼을 누릅니다.
2. 그리고 사용하고자 하는 이메일 주소를 입력해 줍니다. 관련 이메일은 안받으셔도 됩니다. 그러면 입력하신 이메일로 6자리 코드가 발송되는데, 그 코드를 입력해 줍니다. 'Google로 계속' 으로 진행하실 경우에는 별도의 인증이 없습니다. 워크스페이스 생성을 눌러줍니다.
3. 그리고 우리가 사용할 워크스페이스의 이름을 설정해 주겠습니다. 아무거나 지어주시면 됩니다. 저는 beestock으로 지어주겠습니다. 나머지는 아무렇게나 지어주시면 됩니다.
4.이메일을 자주 보내는 대상은 건너뛰시면 됩니다. 이제 워크스페이스 생성이 완료되었습니다.
다음으로 우리가 만든 slack 워크스페이스에 알림을 보내줄 slack 봇을 만들어 보겠습니다.
slack api를 통한 slack 자동화 봇 생성
1.api.slack.com 으로 접속한 후 'Start Building' 버튼을 눌러줍니다. 그리고 이름을 정해줍니다. 저는 stock-bot으로 지었습니다. 그리고 워크스페이스를 지어야 되는데, 아까 제가 만들었던 beestock을 지정해 주겠습니다. Create App 버튼을 누르면 봇이 완성되었습니다.
이제 slack api에서 필요한 설정들을 해주겠습니다.
1. 왼쪽에 OAuth & Permissions 라는 메뉴로 들어가 줍니다. 스크롤을 내려보면 Bot Token Scopes 메뉴에서 권한을 설정해 줍니다. 'Add an Oauth Scope > chat:write' 권한을 주어서 우리의 봇이 채팅방에 글을 쓸 수 있도록 만들어 주겠습니다.
2.이렇게 등록하신 후에 위쪽에 Install to Workspace 버튼을 눌러주고, 허용 버튼을 눌러서 설정을 완료합니다.
이제 설정이 완료되었고, 여기 나온 OAuth Token을 이용해서 우리가 만든 bot으로 워크스페이스에 메시지를 전송할 수 있습니다.
추가로 이렇게 만든 bot을 워크스페이스에 우리가 사용할 채널을 선택해 주시고 세부정보 표시를 눌러 보시면 더보기>앱 추가 메뉴가 있습니다.
이걸 누르셔서 우리가 만든 stock-bot을 추가 버튼을 눌러서 추가해 줍니다. 그러면 이렇게 stock-bot 추가가 완료됩니다.
파이썬을 이용하여 slack 봇을 통해 메시지 보내보기
다음으로 파이썬을 이용해서 우리가 만든 bot을 통해 slack 메시지를 전송해 보겠습니다. 이때 'slacker'라는 라이브러리가 사용되는데, slacker GitHub github.com/os/slacker 로 접속합니다.
스크롤을 내리면 slacker 사용 방법에 아래에 나와 있습니다. 일단 설치를 먼저 해주겠습니다. 여기
pip install slacker
이 부분을 복사해서 지난 시간에 이어서 우리가 작업하던 폴더인 Visual Studio Code - stockauto 폴더로 들어와서 Termilnal 안쪽에 붙여넣겠습니다. 직접 입력해주셔도 됩니다. 그리고 엔터를 눌러주시면 자동으로 설치가 됩니다.
그리고 다시 GitHub로 와서 Examples(예제) 코드 중에 post_message가 있는 네 번째 줄까지 복사를 해줍니다.
지난 시간에 작성한 이 코드들은 모두 지우고, 여기에 그대로 붙여줍니다. 그리고 아까 만들었던 stock-bot에 OAuth Token을 복사해서 Slacker 괄호 안쪽에 따옴표 사이에 넣어줍니다. 마지막 코드는 메시지를 보내는 코드인데, 우리는 stock이라는 채널명으로 만들었기 때문에 stock으로 변경해 주시고 저장을 해줍니다.
Terminal에
python test.py
를 입력하셔서 이 코드를 실행시켜보면, 그러면 알림과 함께 이러한 메시지가 잘 전송된 것을 확인할 수 있습니다.
여기 나오는 이 메시지는 코드에 있던 'Hello fellow slackers!' 라는 내용이 그대로 전송된 것입니다. 여기에 주가 정보나 다른 정보를 집어넣게 되면 slack 메신저를 통해 그 정보를 확인할 수 있게 됩니다.
추가로 구글 플레이 스토어나 앱 스토어에서 slack 앱을 다운받을 수 있습니다. 그러면 스마트폰을 통해서도 알림과 메시지를 받을 수 있습니다.
삼성전자 주가, slack 알림으로 받아보기
그러면 이것을 응용해서 삼성전자의 현재 주가 정보를 크레온 API를 통해 받아서 여기에 담아주고, 그 정보를 slack 메신저를 통해 확인할 수 있도록 해보겠습니다.
먼저 지난 시간에 한 것처럼 크레온 API 공식 홈페이지로 접속해서 자료실 > 파이썬 > 3 번째 페이지에 있는 '주식 현재가 조회' 예제를 들어가 줍니다.