사용자가 메시지를 보냈을때 생성되는 이벤트 객체이다.
type 속성이 "message" 이며, 각 메시지 타입에 해당하는 메시지 객체가 content 속성에 포함된다.
메시지 객체의 종류와 사용가능한 클라이언트 버전은 아래와 같다.
| 메시지 종류 | 내용 | 클라이언트 버전 |
|---|---|---|
| text | 텍스트 | 모든 버전 가능 |
| location | 위치 정보 | 모든 버전 가능 |
| sticker | 스티커 | 클라이언트 v2.3부터 가능 |
| image | 이미지 | 클라이언트 v2.3부터 가능 |
| file | 파일 | 클라이언트 v2.9부터 가능 |
| audio | 오디오 | 클라이언트 v4.1부터 가능 |
| video | 비디오 | 클라이언트 v4.1부터 가능 |
사용자가 전송한 텍스트가 포함된 메시지 객체이다.
주의
- 'content.postback' 항목은 message action의 postback 혹은 '시작하기'로 반응하는 항목으로 postback action의 응답은 postback event 페이지를 참고한다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "text"로 고정 |
| content.text | string | Y | 대화한 사용자가 입력한 대화 내용 |
| content.postback | string | N | 사용자 postback 정보(그리팅 혹은 템플릿 사용) |
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" }}사용자가 전송한 위치 정보가 포함된 메시지 객체이다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "location"으로 고정 |
| content.address | string | Y | 사용자 위치를 나타내는 주소 |
| content.latitude | number | Y | 사용자 위치를 나타내는 위도 |
| content.longitude | number | Y | 사용자 위치를 나타내는 경도 |
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 }}사용자가 전송한 스티커 정보가 포함된 메시지 객체이다.
LINE의 기본적인 스티커와 스티커 ID는 스티커 목록을 참고한다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "sticker" 고정 |
| content.packageId | string | Y | 패키지 ID |
| content.stickerId | string | Y | 스티커 ID |
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" }}사용자가 전송한 이미지 데이터가 포함된 메시지 객체이다.
리소스 ID의 바이너리 이미지 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "image"로 고정 |
| content.fileId | string | Y | 리소스 ID |
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=" }}사용자가 전송한 파일이 포함된 메시지 객체이다.
리소스 ID의 파일 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "file"로 고정 |
| content.fileId | string | Y | 리소스 ID |
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=" }}사용자가 전송한 오디오 데이터가 포함된 메시지 객체이다.
리소스 ID의 오디오 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "audio"로 고정 |
| content.fileId | string | Y | 리소스 ID |
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=" }}사용자가 전송한 비디오 데이터가 포함된 메시지 객체이다.
리소스 ID의 비디오 데이터는 콘텐츠 다운로드 문서를 참고해 다운로드할 수 있다.
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| type | string | Y | "message"로 고정 |
| source | object | Y | callback 메시지를 전달한 주체 |
| source.userId | string | Y | 대화한 사용자의 대표 계정 |
| source.channelId | string | 설명확인 | 대화한 사용자가 속한 메시지방 ID. 1:1 메시지방의 ID는 전송되지 않는다. |
| source.domainId | number | Y | 대화한 사용자가 속한 도메인 ID |
| issuedTime | string | Y | 이벤트 발생 시각(형식: YYYY-MM-DDThh:mm:ss.SSSZ). |
| content | object | Y | 메시지 내용 |
| content.type | string | Y | "video"로 고정 |
| content.fileId | string | Y | 리소스 ID |
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=" }}호출에 성공하면 HTTP 상태 코드 200을 반환해야 한다.
callback에 의해 전송된 HTTP 요청은 실패해도 다시 전송하지 않는다.
HTTP/1.1 200 OKContent-Type: application/jsonServer: YOUR_SERVER_HOST_NAMEContent-Length: 0