Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

[PHP] Slack 채널로 메세지 전송

2017-09-06 by 편리

Slack은 지금 회사에 이직하면서 접했고 지금은 업무 처리에 많은 부분을 담당하고 있다. 최근의 서비스들이 그렇듯 Slack 역시 다양한 API를 제공하고 있는데 chat.postMessage 를 이용해 특정 채널로 메세지를 전송해보자. 아래 class를 사용하기 위해서는 Slack API에 사용될 Legacy token을 발급받아야 한다. Token은 https://api.slack.com/custom-integrations/legacy-tokens 페이지를 방문해 발급받을 수 있다.

<?php
/*
https://api.slack.com/methods/chat.postMessage

Token 생성 : https://api.slack.com/custom-integrations/legacy-tokens
*/

class SLACK
{
    private $token;
    private $channel;
    private $username;
    private $message;

    public function __construct($token, $username='Slack Bot') {
        $this->token    = $token;
        $this->username = $username;
    }

    public function setChannel($channel) {
        $this->channel = $channel;
    }

    public function setUsetName($username) {
        $this->username = $username;
    }

    public function setMessage($message) {
        $this->message = $message;
    }

    public function send() {
        $postData = array(
            'token'    => $this->token,
            'channel'  => $this->channel,
            'username' => $this->username,
            'text'     => $this->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;
    }
}

위 class를 이용해 메세지를 발송하는 코드는 아래와 같다.

<?php
require_once './slack/slack.class.php';

$token = 'your token';

$slack = new SLACK($token);

$slack->setChannel('#general');
$slack->setMessage('Hi, chicpro '.date('Y-m-d H:i:s'));

$result = $slack->send();

print_r($result);
?>

#general 은 실제 채널로 변경해야 한다.

자료

  1. https://api.slack.com/methods/chat.postMessage
  2. https://api.slack.com/custom-integrations/legacy-tokens

Post navigation

Previous Post:

[PHP] Slimframework를 이용한 영카트5 상품정보 API 서버 구성

Next Post:

[PHP] 백그라운드로 동시에 프로그램 실행

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • SK 세븐모바일 유심 셀프교체
  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes