개발/API

SLACK API chatPostMessage 설정 및 사용법

buchet 2023. 3. 16. 10:09

1. APP 만들기
2. Scopes 설정 및 Token 발급
- OAuth & Permissions 클릭 > 설정

  • channels:read - 워크스페이스의 public 채널에 대한 정보 보기
  • chat:write - SlackApi로 message 발송
  • users:write - SlackApi를 위한 presence(?) 설정

슬랙 채널에 메시지를 보내기 위해서는 chat:write는 반드시 추가를 해야합니다.
+ 슬랙 채널을 private 으로 설정 하였을 경우 groups:read Scope 추가 설정
3. Install to Wrokspace 클릭
4. bot 추가 할 앱 오른쪽 마우스 클릭 > 채널 세부정보 열기 > 앱 > 방금 추가 한 app 추가하기
- 아래 이미지는 SlackApi App 을 추가 한 상태

PHP 코드

    if( !function_exists('send_slack_message'))
    {
        function send_slack_message($message=null) {
            $postData = array(
                'token'    => SLACK_BOT_TOKEN, // oauth token
                'channel'  => SLACK_CHANNEL, // channel id
                'text'     => $message
            );

            $ch = curl_init('https://slack.com/api/chat.postMessage');
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST,  'POST');
            curl_setopt($ch, CURLOPT_POSTFIELDS,     $postData);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            $result = curl_exec($ch);
            curl_close($ch);
            
            return $result;
        }
    }

Shell Script(sh)

curl -H "Content-type: application/json; charset=utf-8" \
--data '{"channel":"{채널ID}", "text":"{보내는 메시지}"}' \
-H "Authorization: Bearer {API 전송을 위해 발급 한 Token}" \
-X POST https://slack.com/api/chat.postMessage

 
결과

 

 

 

----------------------------------- 추가 정보 -------------------------------------

설정했던 api oauth token 확인하는경로

1. slack api 접속

2. your apps 접속

3. App Name 항목에 있는 app 접속

4. OAuth & Permissions 접속

5. OAuth Tokens for Your Workspace 영역에 있는 Bot User OAuth Token 항목 확인