Webhook(웹훅) 연결 가이드
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 설정] 메뉴를 눌러 연결할 수 있습니다.
- Webhook 연결 시 메세지를 받을 메신저의 대화방을 선택하고, 메세지 발송자로 표시될 이름을 설정해 주세요.
- 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”}}
]}’