티스토리 뷰
이전 글에서는 Slack Api를 통해 lunch-bot 및 Slash Command를 만들었다.
그러나 '/점심' 이라는 요청 값을 입력했을 때 응답을 줄 API 서버가 없었다.
Slack API 통신 규약을 살펴보며, 간단한 API 서버를 만들고자 한다.
1. Slack API 통신규약
https://api.slack.com/interactivity/slash-commands
Slack에서 Request시 POST 메소드로 요청한다. 필요하다면 channel_name, text등의 요청 값을 활용할 수 있다.
Response값을 줄때는 3초가 넘으면 타임아웃이 발생하며, application/json 타입으로 아래와 같이 응답 값을 주면 된다.
응답 예시
2. api 프로젝트 생성
Springboot를 이용하여 간단하게 '짜장면'을 리턴하는 프로젝트를 만들어봤다. 필요에 따라 Enum Type 또는 DB를 이용하여 랜덤하거나 날씨에 따른 응답 값을 적절히 주면 된다. 또한, 위 예제와 같이 응답값 type을 Markdown으로 줄 수도 있다.
3. ngrok를 설치하여, 외부에서 접근 가능하도록 설정
외부에서 접속할 수 있는 AWS, GCP 등을 이요하면 좋지만, 대부분 이런 tutorial은 localhost를 통해서 진행할 수 밖에 없다. ngrok는 네트워크 환경 설정이나 포트 포워딩 없이 안전하게 외부에서 내 localhost로 접근 가능하도록 도와주는 도구이다.
ngrok설치는 아래 블로그의 도움을 받아서 진행하였다.
https://phoby.github.io/ngrok/
Mac 환경 기준
brew cask install ngrok
로컬에서 실행중인 서버 포트가 8080이라 가정하고 아래 명령어를 실행한다.
ngrok http 8080
http://5952c577.ngrok.io 주소를 입력하면 외부에서 localhost:8080 으로 접속할 수 있도록 해준다.
무료 버전은 명령어 접속을 종료하게 되면, 새로운 주소로 URL을 다시 받게 된다. 기본 Session시간은 8시간이며, 위 블로그를 보면 8시간 이상으로 Session을 유지시킬 수 있는 방법도 소개해준다.
4. Slack Slash Command Request URL 수정
다시 슬랙으로 가서 Request URL에 ngrok에서 할당받은 주소(http://5952c577.ngrok.io) + API Path(/slack/lunch)를 입력하자.
그리고 Slack Slash Command 호출!!
추가로 서버로 Slack에서 들어온 요청이 유효한 요청인지 아닌지 검증하는 프로젝트를 만드신 분이 있어서, 좋은 정보라 생각하여 공유 드립니다.
https://hojak99.tistory.com/557?category=760416
참고 :
http://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8438948708
https://phoby.github.io/ngrok/
'develop etc.. > etc' 카테고리의 다른 글
VSC(Visual Studio Code) Activity Bar에 Search 추가 (0) | 2020.03.30 |
---|---|
VSC(Visual Studio Code)를 터미널(Mac CMD)에서 열기 (0) | 2020.03.30 |
Slack Slash Commands -1 (0) | 2020.02.15 |
Slackbot responds(슬랙봇 응답) (2) | 2020.02.12 |
2019 AWSOMEDAY Online Conference 후기 (0) | 2019.11.10 |
- Total
- Today
- Yesterday
- MSSQL
- effectivejava
- 업데이트 쿼리
- 이펙티브자바
- Slack
- update set multiple
- 슬랙봇
- 몽고DB 완벽가이드
- 슬랙 /
- 싱글턴
- spring-boot-starter-data-redis
- update query multi row
- 이것이 자바다
- update query set multiple
- update query
- springboot https
- vue.js
- multiple row update
- visual studio code
- SpringBoot
- update query mutiple row
- 그레이들
- update set multi
- 뱅셀 유전자
- 뱅크샐러드
- 다중 업데이트
- 뱅크샐러드 유전자
- gradle
- java
- 슬랙
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |