평범한 이야기들

[Slack] 슬랙 WebHooks 보내기 본문

평범한 개발 이야기/PHP

[Slack] 슬랙 WebHooks 보내기

songsariya 2019. 10. 22. 14:02
728x90

Slack 클래스

 단순하게 내용을 입력받아서 Slack Webhooks를 보내는 클래스입니다. 

단순하게 만들어서 어디서나 쉽게 사용 할 수 있게 했습니다. 

Webhook 주소가 많다면 따로 관리하는 파일과 맵핑시켜 처리하면 될 것 같습니다.

<?php

class Slack {
    
    private $postData;
    
    public function __construct(){
    }
    
    public function setPostData($postData){
        $this->postData = $postData;
    }
    
    public function sendSlack($postData) {
        
        $this->postData = $postData;
        
        if( isset($this->postData) == false || empty($this->postData) == true) {
            // 데이터가 없으면 값을 보내지 않는다.
            return false;
        }
        
        try {
                            
            $ch = curl_init('웹훅주소');
            
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST,  'POST');
            curl_setopt($ch, CURLOPT_POSTFIELDS,     'payload='.json_encode($this->postData));
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            
            $result = curl_exec($ch);
            curl_close($ch);
            
        } catch(Exception $e) {
            $s = $e->getMessage() . ' (오류코드:' . $e->getCode() . ')';
            //로깅처리
        }
        
        return true;
    }
    
}

 

WebHooks 보내기

 Slack 클래스를 이용해서 Webhooks를 보내는 소스코드입니다.

슬랙 클래스 객체를 생성 후 해당 채널, 사용자, 내용 등을 입력한 후 보내주기 하면 됩니다.

<?php

include ("Slack.class.php");

$slack = new Slack();

$postData = array(
    'channel' => '#테스트_채널',
    'username' => '테스트알림',
    'text' => "테스트 이벤트가 발생되었습니다." . date("Y-m-d H:i:s")
);

$slack->sendSlack($postData);

 

아주 간단하게 작성했습니다. PHP에서는 손쉽게 만들고 사용할 수 있습니다.

728x90
Comments