Skip to content

CHICPRO

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

[PHP] Slack Webhook을 이용한 그누보드5 게시글 등록 알림

2017-11-07 by 편리

기존에 공개했던 레거시 토큰을 이용한 Slack 메세지 전송 플러그인을 Webhook을 이용한 방식으로 변경한 그누보드5용 플러그인이다. 토큰의 경우 유출됐을 때 보안 문제 등의 위험이 있기 때문에 Webhook을 이용한 방법을 이용하는 것이 좋다. 그리고 수정한 플러그인은 attachments 속성을 이용하기 때문에 전송되는 메세지를 좀 더 유연하게 커스터마이징 할 수 있다.

slack.webhook.zip

Github : https://github.com/chicpro/youngcart5/commits/slack-webhook

Slack Incoming WebHooks : https://api.slack.com/incoming-webhooks
WebHook App : https://my.slack.com/services/new/incoming-webhook/

플러그인을 사용하기 위해서는 첨부된 파일을 다운로드 후 압축해제하고 해당 디렉토리에 파일을 복사한다. skin 디렉토리의 2개 파일은 게시판에서 사용 중인 스킨 디렉토리에 복사한다. 각각 게시글 등록, 댓글 등록 알림을 처리하는 파일이다. 게시판의 스킨이 다르고 각각 Slack의 다른 채널로 알림을 보내고자 한다면 2개의 스킨 파일을 각 스킨 디렉토리에 복사하고 채널별 Webhook App 생성한 후 아래 코드에서 27, 28 라인의 설정을 각기 지정하면 된다.

    if(defined('G5_SLACK_USE') && G5_SLACK_USE === true && is_file(G5_SLACK_PATH.'/slack.class.php'))
        include_once(G5_SLACK_PATH.'/slack.class.php');
    else
        return;

    $info = array();

    $info[] = '이름 : ' . strip_tags($wr_name);

    // 게시글 링크
    $info[] = '<'.urlencode(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id).'|새글 보기>';

    // wr_content 가공
    $_wr_content = preg_replace('#<br\s*/?>#i', "\n", $wr_content);

    $info[] = strip_tags($_wr_content);

    $_text    = implode("\n", $info);
    $_pretext = '';

    if($ca_name)
        $_pretext .= strip_tags($ca_name) . ' | ';

    $_pretext .= strip_tags($wr_subject);

    $slack = new SLACK();

    $slack->setWebHookUrl(G5_SLACK_WEBHOOK_URL);
    $slack->setChannel(G5_SLACK_CHANNEL);

    $slack->setUserName('[새글등록알림]');
    //$slack->setIconEmoji(G5_SLACK_EMOJI);
    $slack->setIconUrl(G5_SLACK_ICON_URL);
    //$slack->setMessage('Slack 메세지 내용');
    $slack->setAttachmentsText($_text);
    $slack->setAttachmentPreText($_pretext);
    $slack->setAttachmentsColor(G5_SLACK_BAR_COLOR);

    $result = $slack->send();

    //print_r($result); exit;

위와 같은 방법으로 게시글과 댓글의 알림을 서로 다른 채널에 전송할 수도 있다.

Post navigation

Previous Post:

[PHP] onesignal을 이용한 그누보드5 글등록 webpush ssl 적용

Next Post:

[WP] 워드프레스 포스트에 사진의 EXIF 정보 플러그인

2 Commments

  1. 램블러 says:
    2020-02-14 at 11:17

    감사히 잘 사용중입니다~!

    혹시나
    $info[] = ”;
    글 보기 링크 텍스트를
    버튼 형태로 표현하는 방법이 있을까요?

    Reply
    1. 편리 says:
      2020-02-14 at 11:23

      안녕하세요.
      잘 사용해주셔서 감사드립니다.

      문의하신 내용에 대해서는 https://api.slack.com/reference/surfaces/formatting 에 나온 내용을 확인해 보시기 바랍니다.

      Reply

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