Slack에 메시지 보내기.

2018. 8. 4. 14:00개발/기타

Slack에 메시지를 보낼 때 두 가지 방법을 사용해보았다.


1. Legacy Token


 - https://api.slack.com/custom-integrations/legacy-tokens

 슬랙 계정에서 토큰을 부여받아서, API 중 chat.postMessage를 GET Method를 사용하여 메시지를 슬랙 채널에 보낼 수 있다. 토큰을 부여받은 계정이 사라지면, 봇도 제대로 작동하지 못하므로 다시 부여받아야 한다.


 슬랙 토큰을 통해서 특정 채널에 메시지를 보내기 위해서는 채널의 ID가 필요하다.


ID는 웹으로 슬랙 채널을 접속 했을 때에 URL 가장 뒷부분에 있는 영어와 숫자로 이루어진 문자열이다.


 아래 링크에 자세한 확인 방법이 있다.

 - https://www.wikihow.com/Find-a-Channel-ID-on-Slack-on-PC-or-Mac


GET Method의 Arguments 중 필수적인 항목은 아래와 같다.

"token" - 토큰 string.

"channel" - 채널 ID.

"text" - 보낼 메시지.


그 외에 Optional로써 

emoji

attachment

as_user

mrkdwn

parse

username

unfurl_media


등의 값을 보낼 수 있다.


 아래 링크는 Slack API중 chat.postMessage 메서드API의 document이다.

 - https://api.slack.com/methods/chat.postMessage



2. Incoming Webhooks

 - https://api.slack.com/custom-integrations/incoming-webhooks


 토큰을 사용하는 방식과 달리, 봇? 같은 것을 만들어서 봇 이름, 프로필사진, 메시지를 수신할 대상 채널을 정하고 컨텐츠들만 주는 방식으로 사용할 수 있었다.


 물론 리퀘스트 상에서 위에서 정해둔 것들을 바꿔줄 수도 있다. 즉 기본값을 설정하고, 바꾸는데도 제한이 없다는 것.


Incoming Webhook을 만들면, url 주소가 부여되는데, 그 url 주소로 request를 보내는 것만으로 메시지 포스트가 가능하다.


단, 컨텐츠는 JSON 형식으로 되어있어야 하고, POST Method를 사용하여야 한다.


컨텐츠는 위 1번 방식에 있는 요소들과 비슷.. 유저 이름이나 프로필 사진 등은 Configuration 에서 정해줄 수가 있어서 따로 리퀘스트상에서 변경하지 않았다.