자료실

라이믹스 게시물 작성 웹훅 애드온

2025.03.01 21:56
236
3
자료 유형 애드온
간단한 소개 라이믹스 게시물 웹훅 발송 애드온입니다.
설치 경로 ./addons/webhook_sender
코어 지원 범위 Rhymix 2.1, Rhymix 2.0
PHP 지원 범위 8.4, 8.3, 8.2, 8.1, 8.0, 7.4
자료 구분 공개 자료
라이선스 MIT
저장소 URL https://github.com/lifeofpi-ux/webhook_sender

스크린샷 2025-03-02 오후 5.43.26.png

 

라이믹스 게시물 웹훅 발송 애드온 v0.5.2

이 애드온은 라이믹스(XE/Rhymix)에서 게시물이 작성되거나 수정될 때 웹훅을 통해 외부 서비스로 알림을 보내는 기능을 제공합니다. 라이믹스 코어 표준 기능을 활용하도록 이전버전에서 개선되었습니다.

 

주요 기능

  • 게시물 작성 및 수정 시 웹훅 발송
  • 관리자 페이지에서 웹훅 URL 설정
  • 웹훅 트리거 옵션 설정 (새 게시물 작성 시, 게시물 수정 시)

 

설치 방법

  1. 이 저장소를 다운로드하거나 클론합니다.
  2. 다운로드한 파일을 라이믹스의 addons 디렉토리 아래에 webhook_sender 폴더를 생성하여 복사합니다.
    • 설치 경로: /path/to/rhymix/addons/webhook_sender/
  3. 라이믹스 관리자 페이지에서 애드온 관리로 이동합니다.
  4. 목록에서 "라이믹스 게시물 웹훅 발송 애드온"을 찾아 활성화합니다.
  5. 애드온 설정에서 웹훅 URL을 설정합니다.
  6. 웹훅을 사용할 게시판 모듈에서 애드온을 활성화합니다.

 

설정 방법

  1. 라이믹스 관리자 페이지에서 애드온 관리로 이동합니다.
  2. "라이믹스 게시물 웹훅 발송 애드온"의 설정 버튼을 클릭합니다.
  3. 다음 설정을 입력합니다:
    • 웹훅 URL: 알림을 보낼 웹훅 URL을 입력합니다. (예: https://n8n.example.com/webhook/...)
    • 새 게시물 작성 시 웹훅 발송: 새 게시물이 작성될 때 웹훅을 발송할지 여부를 선택합니다.
    • 게시물 수정 시 웹훅 발송: 게시물이 수정될 때 웹훅을 발송할지 여부를 선택합니다.
    • 웹훅 콘텐츠 길이 제한: 웹훅으로 전송되는 게시글 내용의 최대 길이를 지정합니다. 비워두거나 0을 입력하면 길이 제한 없이 전체 내용을 전송합니다. (기본값: 글자수 제한없음)
  4. 설정을 저장합니다.
  5. 애드온 관리 페이지에서 웹훅을 발송할 모듈에 대해 애드온을 활성화합니다.

 

트리거 옵션 설명

  • 새 게시물 작성 시 웹훅 발송: '예'로 설정하면 새 게시물이 작성될 때 웹훅이 발송됩니다.
  • 게시물 수정 시 웹훅 발송: '예'로 설정하면 게시물이 수정될 때 웹훅이 발송됩니다.
  • 두 옵션 모두 '예'로 설정하면 새 게시물 작성과 게시물 수정 시 모두 웹훅이 발송됩니다.
  • 두 옵션 모두 '아니오'로 설정하면 웹훅이 발송되지 않습니다.

 

웹훅 데이터 형식

웹훅으로 전송되는 데이터는 다음과 같은 JSON 형식입니다:

{
  "title": "게시글 제목",
  "content": "게시글 내용 (설정에 따라 길이 제한 또는 전체 내용)",
  "module_srl": "게시판 모듈 SRL",
  "board_name": "게시판 이름",
  "url": "게시글 URL",
  "message": "알림 메시지",
  "author": "작성자 닉네임",
  "member_srl": "작성자 회원 SRL",
  "regdate": "등록일시 (Y-m-d H:i:s)",
  "last_update": "수정일시 (Y-m-d H:i:s)",
  "is_new": true/false,
  "is_update": true/false
}

 

주요 변경 사항 (v1.1.0)

  • 모듈별 활성화 방식 도입: 특정 게시판에만 웹훅 발송 기능은 라이믹스 기본 애드온 활성화 방식으로 변경
  • 타임스탬프 형식 통일: 모든 타임스탬프는 라이믹스 표준 형식(Y-m-d H:i:s)으로 통일
  • 라이믹스 HTTP 라이브러리 사용: curl 직접 사용 대신 Rhymix\Framework\HTTP 또는 FileHandler 클래스 활용
  • SSL 인증서 검증 활성화: 보안 강화를 위해 기본적으로 SSL 인증서 검증 활성화
  • 비동기 처리 개선: 라이믹스 Queue 시스템을 활용한 안정적인 비동기 처리 구현
  • 코드 구조 개선: 역할별로 함수 분리 및 중복 코드 제거

 

주의사항

  • 웹훅 URL은 반드시 https:// 또는 http://로 시작해야 합니다.
  • 웹훅 발송 시 네트워크 문제로 지연이 발생할 수 있습니다.
  • 웹훅 수신 서버가 응답하지 않을 경우 게시물 등록에는 영향을 주지 않습니다.
  • SSL 인증서 검증이 활성화되어 있으므로, 유효한 인증서를 사용하는 웹훅 URL을 사용해야 합니다.

 

라이선스

이 애드온은 MIT 라이선스 하에 배포됩니다.

 

문의 및 버그 리포트

문제가 발생하거나 기능 개선 요청이 있으시면 GitHub 이슈를 통해 알려주세요.

 

제작자

 

라이프오브파이 (indend007@gmail.com)

 

버전 업데이트

- 기진곰님의 제안 사항을 반영하여, 0.5.0 버전으로 업데이트 됨

- 특수문자 인코딩 예외처리, 웹훅 전송 콘텐츠 글자수 설정 기능 추가
 

댓글 4

  • 2025.03.01 23:26 #1900442

    최근 웹 자동화 툴이 많지요. 개인적으로는 n8n 을 위해서 라이믹스용 웹훅을 만들어야겠다 싶어서 개발했구요. 라이믹스에서 새 글을 작성하거나 수정하면 웹훅으로 관련 정보를 발송합니다. n8n이든 디스코드든, 다양한 봇이든 웹훅으로 받은 json을 입맛대로 가공하시면 다양하게 활용하실 수 있으실거에요. 

  • 2025.03.02 01:34 #1900502

    이런 자동화 툴 좋습니다. bbb

     

    요즘은 서비스 하나가 따로 놀아서는 안 되고, 서로 다른 서비스들과 연동해서 가치를 만들어 내지요. 어쩌면 이 자료를 기반으로 라이믹스 게시물 정보를 다른 서비스와 주고받는 일종의 표준이 자리잡게 될지도 모르겠습니다.

     

    소스를 대충 둘러보고 몇 가지 제안 드립니다.

     

    1. 애드온이라면 어느 모듈에서 켜고 끌지 선택하는 기능이 기본 제공되는데, 대상 모듈을 따로 입력받도록 만드신 이유가 있나요? A 모듈에서만 켜놓고 B 모듈을 대상 모듈로 지정하는 등, 혼란스러운 상황이 발생할 수도 있을 것 같아서요.

     

    2. 타임스탬프 형식을 하나로 통일하면 좋겠습니다. YmdHis 다 붙여 쓰는 XE 방식은 솔직히 다른 시스템들이 처리하기 어렵지요. 라이믹스에서도 새로 만드는 테이블은 datetime, 그러니까 Y-m-d H:i:s 형식입니다. 기왕 Y-m-d H:i:s 형식의 필드를 2개 추가하신 김에, 이것으로 통일하시죠?

     

    2-1. XE 방식의 YmdHis 타임스탬프를 가장 안정적으로 처리할 수 있는 함수는 zdate() 와 ztime() 입니다. 전자는 포맷을 지정하여 date() 까지 한 번에 처리할 수 있고, 후자는 유닉스 타임스탬프를 반환하지요. strtotime() 은 낮은 확률이지만 문자열을 잘못 해석할 여지가 있고, 라이믹스의 복잡한 표준 시간대 처리 방식을 고려할 때 어딘가 불안하네요.

     

    3. curl을 직접 다루기보다는 Rhymix\Framework\HTTP::request() 또는 FileHandler::getRemoteResource() 를 사용하는 것을 추천드립니다. PHP에서 가장 강력한 외부 요청 라이브러리인 Guzzle을 랩핑한 것이어서 안정적이고, 무엇보다도 시간이 오래 걸릴 경우 디버그에 찍힙니다. 맨땅에 curl을 사용하면 디버그에 찍히지 않아서 깜깜이가 됩니다.

     

    4. 이유 없이 인증서 검증을 꺼 버리는 습관이나, 요청을 던져 놓고 소켓을 닫아 버리는 비동기 처리(라고 말하기도 민망한) 방식은 이 자료가 추구하는 모던 웹의 기준에 걸맞지 않는다고 생각됩니다. 라이믹스 코어에서 지원하는 비동기 처리 Queue를 활용하면 어떨까요?

  • 2025.03.02 16:58 #1900874

    개인용으로 제작해서  부족한 애드온이었는데, 감사한 조언을 해주셔서 관련 기능 업데이트 해서 재배포했습니다. ^^ 많은 분들이 마음껏 수정하셔서 재배포해서 라이믹스 기능에 도움이 되는 애드온으로 만들어주신다면 감사하겠습니다! 

  • 15시간 전 #1901414

    와우,,, 정말 좋은 애드온 감사합니다.