Webhook(웹훅) 연결 가이드

collabee
Help Center : collabee
5 min readNov 19, 2020

Incoiming Webhook 이란, 외부서비스의 데이터를 콜라비가 지정한 포맷으로 연결하여 메신저 대화방으로 연결한 데이터를 메세지로 전송해주는 기능을 말합니다.

협업툴 콜라비에서 아래 절차대로 연결하면 메신저의 대화방으로 데이터가 전송됩니다. 메신저 앱 다운로드

💁‍♀️ 콜라비의 데이터 포맷 변환 지원 서비스

콜라비는 서비스 자체적으로 데이터 포맷 변환을 지원하고 있습니다. 아래 서비스는 위 Webhook URL 을 입력하면 별도의 데이터 포맷 변환 과정을 하지 않아도 됩니다.

  • GitHub
    지원 가능한 이벤트 — create, delete, push, pull_request, pull_request_review, commit_comment, repository, issues, issue_comment, membership
  • Bugsnag
  • App Center

Incoming Webhook 연결 방법

협업툴 콜라비에 접속하여 오른쪽 상단의 나의 프로필을 누른 다음 [설정] 버튼을 눌러 접속해 주세요. 그리고, 오른쪽 중간의 [Webhook 설정] 메뉴를 눌러 연결할 수 있습니다.

  1. Webhook 연결 시 메세지를 받을 메신저의 대화방을 선택하고, 메세지 발송자로 표시될 이름을 설정해 주세요.
  2. Webhook 을 생성하면, Webhook 관리 페이지에서 URL 을 볼 수 있습니다.

이 URL을 복사하여 데이터를 받고 싶은 서비스에 설정하면 웹훅 메세지가 발송됩니다.

3. 아래 데이터 포맷에 따라 설정하면 콜라비 메신저로 메세지를 받아볼 수 있습니다.
콜라비 메신저는 앱을 설치한 후에 사용할 수 있습니다. 메신저 앱 다운로드

JSON 데이터 포맷

아래 이미지는 실제 전송된 메세지입니다. 참고하여 설정해 주세요.

*** Webhook 전송 요청 시 주의사항 ***

  • Header에 “Accept: application/json”, “Content-Type: application/json” 반드시 설정해 주세요.
  • 요청 시, 반드시 Http Method POST로 설정해 주세요.
  • 메세지로 표현되는 최대길이는 4,000자입니다. 4,000자 초과 시, 나머지 데이터는 첨부파일(txt)로 발송됩니다.
  • 웹훅은 1초에 1건씩 발생됩니다.

사용 예시

{

“text”: “empty 가능”,

“datas”: [

{

“type”: (only) “section”,

“data”: {

“content”: “Danny Torrence left the following review”,

“type”: “markdown” (or) “text”,

“imgUrl”: “http://example.path",

“color”: “#fae03c”

}

},

]

}

필드 설명

  • datas : 여러 데이터의 List입니다. 각각 데이터는 포맷과 형식을 다르게 가질 수 있으며, 하나의 문단과 같은 의미로 나눌 수 있습니다.
  • type : 각 데이터의 형식입니다. (only “section” : section 형식만 지원)
  • data : 메세지에서 표현될 데이터 Object입니다.
  • content : 실제 메세지에 표현될 text 내용입니다.
  • type : content를 어떤 문법으로 표현할지 정하는 타입입니다. (markdown 또는 text)
  • imgUrl : 추가할 이미지의 url입니다.
  • color : content에 입힐 색상의 코드입니다.

Curl 를 이용한 요청 방법

Curl 문법에 유의하여 요청해 주시고, 실제로 생성된 Webhook URL 로 꼭 대체해 주세요.

예시

curl -X POST https://hook.collabee.co/service/웹훅URL \

-H “Accept: application/json” \

-H “Content-Type: application/json” \

-d ‘{“datas”:

[{ “type”: “section”, “data”: {“type”: “text”,”content”: “Danny Torrence left a 1 star review for you”, “imgUrl”: “http://example.com", “color”: “#fae03c”}},

{ “type”: “section”,”data”: {“type”: “text”,”content”: “Danny Torrence left the following review”,”imgUrl”: “http://example.com","color": “#fae03c”}}

]}’

--

--