파이썬이나 어플리케이션을 만들어서 슬랙봇을 이용해서 슬랙 채널에 메세지를 자동화 할 수 있다.
1. Webhook URL 을 이용하는 방법
일단, 슬랙에 webhook 을 추가해야 한다.
슬랙에서 [더보기] -> [앱] 을 눌러서, incoming webhooks 를 추가한다.
추가 버튼을 누르면 아래와 같은 webkhook 설정 화면이 나온다.
채널에 포스트
슬랙봇 메세지를 수신할 채널(채팅방)을 선택한다.
이미 만들어진 채널을 선택 할 수 있고, 1:1 대화방이나, 자기 자신을 선택할 수 있다.
또는, 새 채널 생성 으로 새로 만들어서 진행 할 수 도 있다.
웹후크 URL
일종의 웹토큰으로, 슬랙봇에서 메세지를 보낼때는 별도의 로그인없이. 웹후크 URL 만 알면, 메세지를 보낼 수 있다.
해당 주소를 복사해서 저장해 놓자.
이름 / 이미지는 슬랙봇의 이름과 이미지이므로 필요하면 설정하면 된다.
설정저장 버튼만 누르면, 준비는 끝난다.
위에서 저장한 웹후크 URL 로 바로 메세지를 날릴 수 있다.
cmd 창에서 curl 을 통해 아래와 같이 하면, 바로 메세지를 바로 전송해 볼 수 있다.
첫번째 예제 : 메세지 보내기
curl -X POST --data-urlencode "payload={\"text\":\"hello\r\nit's my test\"}" https://hooks.slack.com/services/T028FNHBY0Y/B02EFULB2AX/QdIhJkolfuh0Sz1******** |
성공한 경우 리턴값은 문자열로 ok 라고 나온다.
두번째 예제 : 메세지 + 이름 + 아이콘
첫번째로 메세지만 넣어서 보내면, 설정한 이름/아이콘으로 봇이 표시되지만,
봇의 이름/아이콘도 바꿔서 보낼 수 있다.
curl -X POST --data-urlencode "payload={\"username\": \"webhookbot\", \"icon_emoji\": \":ghost:\", \"text\":\"hello\r\nit's my test\"}" https://hooks.slack.com/services/T028FNHBY0Y/B02EFULB2AX/QdIhJkolfuh0******** |
위의 예제는 curl 을 이용한 테스트였고, postman 어플리케이션을 통해서도 테스트 해볼 수 있다.
웹후크URL 을 넣어주고 POST 방식으로 설정한다.
Body 에는 json 형식으로 넣어준다.
Send 를 누르면, 결과가 나온다. => ok
2. OAuth token 을 이용하는 방법
웹브라우저의 주소창에 아래 주소를 치고 들어간다.
https://api.slack.com/ |
Create an app 을 누르고, 나오는 화면에서 From scratch 를 선택한다.
App Name 에 봇의 이름을 적어준다.
아래에는 메세지를 전송할 Workspace 를 선택한다.
다음 화면에서, OAuth & Permissions 를 선택하고, 스크를을 아래로 내리면,
Scopes 선택화면이 나온다.
Add an OAuth Scope 를 눌럿, chat:write 를 선택한다.
다시 스크롤을 위로 올려서, Install to Workspace 를 눌러준다.
생성된 OAuth Token 을 복사해서 저장해준다.
여기까지 작업을 하면, 이제 해당 Workspace 에 메세지를 보낼 수 있는 봇이 생성이 된것이다.
이제, 봇이 메세지를 보내게 되는 채널(채팅방) 을 설정해야 한다.
슬랙으로 가서, 메세지를 수신할 채널정보를 보면 하단에, 채널 ID 가 있다.
OAuth Token 과 함께 채널 ID 도 함께 저장해 두자.
메세지를 보낼 때 이 2개의 값만 있으면, 메세지를 채널로 보낼 수 있게 된다.
통합을 눌러서, 앱 추가 를 눌러서, 아까 생성한 봇을 선택한다.
이제, cmd 창에서 curl 명령어로 TEST 메세지를 보낼 수 있다.
1. 인증테스트로 OAuth Token 이 올바른지 확인한다.
Authorization: Bearer 뒤에 아까 받은 token 을 입력한다.
curl -H "Authorization: Bearer xoxb-2505273309281-***********************************" https://slack.com/api/auth.test |
결과는 json 으로 나오며, "ok": true 로 나오면 성공한 것이다.
2. 메세지 전송 테스트
Authorization: Bearer 뒤에 아까 받은 token 을 입력한다.
channel= 뒤에 채널ID 를 넣어준다.
curl -d "text=it is just test message" -d "channel=C02********" -H "Authorization: Bearer xoxb-2505273309281-*******************************" -X POST https://slack.com/api/chat.postMessage |
결과는 json 으로 나오며, "ok": true 로 나오면 성공한 것이다.
슬랙에서는 위와같이 메세지가 오게 된다.
'정보공유' 카테고리의 다른 글
2021년 자동차 개별소비세(개소세) 계산기 70%인하, 30%인하 (0) | 2020.06.01 |
---|---|
USB Image Tool - SD,USB Memory Backup and Restore (0) | 2017.11.11 |
LG그램 노트북 분해하기 및 서멀구리스 발라주기 (0) | 2017.09.29 |
식염수 만드는 방법 (코세척 용액 등) (0) | 2017.09.04 |
안드로이드 셋탑박스 KODI 한글화 방법 (1) | 2017.08.30 |