IT/공부

Slack으로 챗봇만들기 - 1. 슬랙의 봇 구조

jspiner 2016. 12. 24. 18:08

소프트웨어 마에스트로 1단계 프로젝트를 진행할때 협업 툴로 Slack을 사용했습니다. 


Slack은 팀 기반의 채팅 플랫폼으로, 아래와 같이 부서별, 업무별로 여러 채널을 나누어 사용할 수 있습니다.







Slack Bot 종류


슬랙에서는 여러 종류의 봇이 있습니다.


  • APP : 타 팀에 배포 혹은 App Directory에 배포하기위해선 App단위로 개발을 해야합니다.

    • Event API : 허용된 권한내의 이벤트들을 지정한 url로 https 방식으로 callback을 받을 수 있습니다.
    • Web API : 허용된 권한내의 사용할 수 있는 기능들을 슬랙서버로 https 방식으로 요청 보낼 수 있습니다.
    • Publish : Integration과의 차이로, 타 팀으로 배포가 가능합니다.
  • Custom Integration : 간단하게 내 팀에서만 사용할거라면 Integration으로 개발할 수 있습니다.

    • Incoming Webhook : 채팅전송 등 몇가지 기능을 POST방식으로 슬랙서버로 요청만 가능합니다.
    • Outgoing Webhook : 특정 채널 혹은 특정 단어에 대해서 지정된 url로 http 방식으로 callback을 받을 수 있습니다.
  • APP과 Integration 공용
    • RTM API : websocket방식으로 지정된 권한 내에서 이벤트를 실시간으로 받고 요청을 보낼 수 있습니다.
    • Bot User : 봇을 하나의 '유저'와 같이 이용 할 수 있습니다.
    • Slash Command : 지정된 커맨드를 입력하면 http(s) 방식으로 지정된 url로 callback을 받을 수 있고 응답이 가능합니다.
  • SCIM API : SSO 로그인을 위한 api입니다.