Message Event

사용자가 메시지를 보냈을때 생성되는 이벤트 객체이다.
type 속성이 "message" 이며, 각 메시지 타입에 해당하는 메시지 객체가 content 속성에 포함된다.
메시지 객체의 종류와 사용가능한 클라이언트 버전은 아래와 같다.

메시지 종류내용클라이언트 버전
text텍스트모든 버전 가능
location위치 정보모든 버전 가능
sticker스티커클라이언트 v2.3부터 가능
image이미지클라이언트 v2.3부터 가능
file파일클라이언트 v2.9부터 가능
audio오디오클라이언트 v4.1부터 가능
video비디오클라이언트 v4.1부터 가능

텍스트 {#message-event-text}

사용자가 전송한 텍스트가 포함된 메시지 객체이다.

주의

  • 'content.postback' 항목은 message action의 postback 혹은 '시작하기'로 반응하는 항목으로 postback action의 응답은 postback event 페이지를 참고한다.

Request {#message-event-text-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"text"로 고정
content.textstringY대화한 사용자가 입력한 대화 내용
content.postbackstringN사용자 postback 정보(그리팅 혹은 템플릿 사용)

Request Example {#message-event-text-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime": "2022-01-04T05:16:05.716Z",  "content": {    "type": "text",    "text": "hello"  }}

위치 정보 {#message-event-location}

사용자가 전송한 위치 정보가 포함된 메시지 객체이다.

Request {#message-event-location-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"location"으로 고정
content.addressstringY사용자 위치를 나타내는 주소
content.latitudenumberY사용자 위치를 나타내는 위도
content.longitudenumberY사용자 위치를 나타내는 경도

Request Example {#message-event-location-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime": "2022-01-04T05:16:05.716Z",  "content": {    "type": "location",    "address": "〒150-0002 東京都渋谷区渋谷2丁目15−1",    "latitude": 35.6587750,    "longitude": 139.7052230  }}

스티커 {#message-event-sticker}

사용자가 전송한 스티커 정보가 포함된 메시지 객체이다.
LINE의 기본적인 스티커와 스티커 ID는 스티커 목록을 참고한다.

Request {#message-event-sticker-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"sticker" 고정
content.packageIdstringY패키지 ID
content.stickerIdstringY스티커 ID

Request Example {#message-event-sticker-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime":"2022-01-04T05:16:05.716Z",  "content": {    "type": "sticker",    "packageId": "1",    "stickerId": "1"  }}

이미지 {#message-event-image}

사용자가 전송한 이미지 데이터가 포함된 메시지 객체이다.
리소스 ID의 바이너리 이미지 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.

Request {#message-event-image-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"image"로 고정
content.fileIdstringY리소스 ID

Request Example {#message-event-image-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime":"2022-01-04T05:16:05.716Z",  "content": {    "type": "image",    "fileId": "WAAAQPwBexX2HnseNvvM9Zyhvp2kIRF3Ul7L7/aMVti8="  }}

파일 {#message-event-file}

사용자가 전송한 파일이 포함된 메시지 객체이다.
리소스 ID의 파일 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.

Request {#message-event-file-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"file"로 고정
content.fileIdstringY리소스 ID

Request Example {#message-event-file-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime":"2022-01-04T05:16:05.716Z",  "content": {    "type": "file",    "fileId": "WAAAQPwBexX2HnseNvvM9Zyhvp2kIRF3Ul7L7/aMVti8="  }}

오디오 {#message-event-audio}

사용자가 전송한 오디오 데이터가 포함된 메시지 객체이다.
리소스 ID의 오디오 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.

Request {#message-event-audio-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"audio"로 고정
content.fileIdstringY리소스 ID

Request Example {#message-event-audio-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime":"2022-01-04T05:16:05.716Z",  "content": {    "type": "audio",    "fileId": "WAAAQPwBexX2HnseNvvM9Zyhvp2kIRF3Ul7L7/aMVti8="  }}

비디오 {#message-event-video}

사용자가 전송한 비디오 데이터가 포함된 메시지 객체이다.
리소스 ID의 비디오 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.

Request {#message-event-video-request}

파라미터타입필수 여부설명
typestringY"message"로 고정
sourceobjectYcallback 메시지를 전달한 주체
source.userIdstringY대화한 사용자의 대표 계정
source.channelIdstring설명확인대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다.
source.domainIdnumberY대화한 사용자가 속한 도메인 ID
issuedTimestringY이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ).
contentobjectY메시지 내용
content.typestringY"video"로 고정
content.fileIdstringY리소스 ID

Request Example {#message-event-video-request-example}

POST /callback HTTP/1.1Host: YOUR_SERVER_HOST_NAMEContent-type: application/json; charset=UTF-8X-WORKS-Signature: 9crxWhZ9aQO/9ruUM4MH3dF/WRGYRhj0vSR4cRyJfHQ=X-WORKS-BotId: 123{  "type": "message",  "source": {    "userId": "c72af563-0f21-4736-11e4-045237113344",    "channelId": "12345",    "domainId": 40029600  },  "issuedTime":"2022-01-04T05:16:05.716Z",  "content": {    "type": "video",    "fileId": "WAAAQPwBexX2HnseNvvM9Zyhvp2kIRF3Ul7L7/aMVti8="  }}

Response(고객사의 메시지 수신 서버 -> 메시지 서버) {#message-event-response}

호출에 성공하면 HTTP 상태 코드 200을 반환해야 한다.
callback에 의해 전송된 HTTP 요청은 실패해도 다시 전송하지 않는다.

Response {#message-event-response-example}

HTTP/1.1 200 OKContent-Type: application/jsonServer: YOUR_SERVER_HOST_NAMEContent-Length: 0