9.1공통
Line biz 상담톡 API
http/https 프로토콜을 사용하며, GET, POST method를 사용합니다.
response는 JSON형태 로 전달됩니다.
Line Developer Messaging API 를 이용해서 Webhook settings 및 Message 전송 기능을 제공합니다.
요청 도메인에 prefix (line)를 추가 해야합니다. (ex : https://tkakao.uconnect.co.kr/line)
9.1.1RESPONSE SAMPLE
[성공]
{ "code": "0", ... // 요청한 데이터 }
[잘못된 요청 또는 에러]
{ "code": "500", "message": "상세 내용" }
9.1.2코드 정의
code | 설명 |
---|---|
0 | 요청 성공 |
400 | 요청 실패 |
401 | 유효한 채널 액세스 토큰이 지정되지 않았습니다. |
403 | 리소스에 액세스 할 권한이 없습니다. |
404 | 프로필 정보를 가져올 수 없습니다.
|
409 | 동일한 재시도 키가 있는 API 요청이 이미 수락되었습니다. |
415 | 업로드 된 파일의 미디어 유형이 지원되지 않습니다. |
429 | 요청이 너무 많습니다.
|
500 | 내부 서버에 오류가 있습니다. |
-404 | 요청실패
|
-405 | 파라미터 오류 |
-406 | 파라미터 오류
|
-407 | Not found channel_access_token |
-508 | 요청한 데이터 없음.
|
-600 | DB 처리 실패 |
9.2Webhook settings
9.2.1Webhook endpoint URL 설정
- [Request]
POST /channel/webhook/endpoint/set
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
endpoint | text(500) | Y | webhook URL.
|
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.2.2Webhook endpoint information 조회
캐싱으로 인해 변경 사항이 적용되는 데 최대 1분이 소요될 수 있습니다.
- [Request]
GET /channel/webhook/endpoint/info
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
endpoint | text | N | Webhook URL |
active | bool | N | Webhook 활성화 여부 값
|
9.3Message
9.3.1메시지 전송 요청
다음과 같은 LINE 사용자는 메시지를 받지 못할 수 있습니다.
LINE 계정을 삭제한 사용자
메시지를 보낸 LINE 공식 계정을 차단한 사용자
LINE 공식 계정을 친구로 추가하지 않은 사용자
이러한 사용자에게 메시지를 보내면 상태 코드 0 응답 코드를 반환하지만 사용자는 메시지를 받지 못합니다.
Message objects
https://developers.line.biz/en/reference/messaging-api/#message-objects
- [Request]
POST /message/send
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
user_key | text(100) | Y | Line biz 수신 API 메시지 수신의 사용자 ID 필드값 |
message_type | text(20) | Y |
|
message | json (3000byte) | Y/N | 보내는 메시지의 내용이 포함된 JSON 개체입니다. 메시지는 한번에 1개만 허용합니다. (Message objects 내용을 참조하여 작성합니다.) message_type 이 BS 일 경우에는 필수가 아님 |
notification_disabled | bool | N | 메시지 전송 시 사용자 푸시 알림 여부를 설정합니다.
기본값: false |
bot_id | text(150) | N | 넥서스 시나리오 봇 아이디(콜아이디) |
bot_name | text(100) | N | 넥서스 시나리오 봇 이름 |
bot_status | text(20) | N | TIMEOUT: 고객 응답 없음, CONNECT: 상담원 연결, BUSY:대기 상담원 없음. EXPIRE: 고객상담종료 |
- [Parameter] - message (text message)
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
message | - | - | - | |
type | text | Y | "text" | |
text | text | Y | 메시지 텍스트 |
{ "sender_key": "1656168303", "user_key": "Uae87c693e2897ccc4c7654acd04f9259", "message_type": "message", "message": { "type": "text", "text": "Hello!" } }
- [Parameter] - message (image message)
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
message | - | - | - | |
type | text | Y | "image" | |
originalContentUrl | text | Y | 이미지 URL (Max character limit: 2000) HTTPS over TLS 1.2 or later JPEG or PNG Max image size: No limits Max file size: 10 MB | |
previewImageUrl | text | Y | 미리보기 이미지 URL (Max character limit: 2000) HTTPS over TLS 1.2 or later JPEG or PNG Max image size: No limits Max file size: 1 MB |
{ "sender_key": "1656168303", "user_key": "Uae87c693e2897ccc4c7654acd04f9259", "message_type": "message", "message": { "type": "image", "originalContentUrl": "https://example.com/original.jpg", "previewImageUrl": "https://example.com/preview.jpg" } }
- [Parameter] - message (video message)
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
message | - | - | - | |
type | text | Y | "video" | |
originalContentUrl | text | Y | 동영상 파일 URL (Max character limit: 2000) HTTPS over TLS 1.2 or later mp4 Max file size: 200 MB | |
previewImageUrl | text | Y | 미리보기 이미지 URL (Max character limit: 2000) HTTPS over TLS 1.2 or later JPEG or PNG Max file size: 1 MB |
{ "sender_key": "1656168303", "user_key": "Uae87c693e2897ccc4c7654acd04f9259", "message_type": "message", "message": { "type": "video", "originalContentUrl": "https://example.com/original.mp4", "previewImageUrl": "https://example.com/preview.jpg" } }
- [Parameter] - message (audio message)
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
message | - | - | - | |
type | text | Y | "audio" | |
originalContentUrl | text | Y | 오디오 파일 URL (Max character limit: 2000) HTTPS over TLS 1.2 or later m4a Max file size: 200 MB Messaging API에서는 M4A 파일만 지원됩니다. | |
duration | text | Y | 오디오 파일 길이(milliseconds) |
{ "sender_key": "1656168303", "user_key": "Uae87c693e2897ccc4c7654acd04f9259", "message_type": "message", "message": { "type": "audio", "originalContentUrl": "https://example.com/original.m4a", "duration": 60000 } }
- [Parameter] - message (location message)
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
message | - | - | - | |
type | text | Y | "location" | |
title | text | Y | 제목 Max character limit: 100 | |
address | text | Y | 주소 Max character limit: 100 | |
latitude | double | Y | 위도 | |
longitude | double | Y | 경도 |
{ "sender_key": "1656168303", "user_key": "Uae87c693e2897ccc4c7654acd04f9259", "message_type": "message", "message": { "type": "location", "title": "my location", "address": "1-6-1 Yotsuya, Shinjuku-ku, Tokyo, 160-0004, Japan", "latitude": 35.687574, "longitude": 139.72922 } }
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.3.2메시지 전송 건수 조회
이 작업으로 검색된 메시지 수에는 LINE 공식 계정 관리자가 보낸 메시지 수는 포함되지 않습니다.
- [Request]
GET /message/delivery
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
date | text(8) | Y | 조회 일자
|
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
status | text | N | counting process 의 상태값 입니다. 다음 값 중 하나가 반환됩니다.
|
success | int | N | "date"에 지정된 날짜에 보낸 메시지 수입니다. "status" 값이 "ready"인 경우에만 메시지 수가 조회됩니다. |
9.3.3장문 메시지 가져오기
"Line biz 수신 API" 항목 중 "메시지 수신" API의 "is_message_attachment" 값이 true 일 경우 사용합니다.
메시지 수신 시 1000자 이상의 경우 전체 내용의 메시지 데이터는 별도로 저장되며, 해당 API로 내려받을 수 있습니다.
- [Request]
GET /message/attachment
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
serial_number | text(50) | Y | 메시지 고유 ID |
9.3.4첨부파일 다운로드
LINE 서버에서 삭제 전에 미리 저장한 첨부파일을 다운로드 합니다.
저장된 파일이 없을 경우 LINE 서버에서 직접 다운로드 합니다.
다음 사항에 해당하는 파일 다운로드 기능을 제공합니다.
메시지 수신 시 첨부된 파일(이미지, 비디오, 오디오 및 파일)
- [Request]
GET /file/download
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
serial_number | text(300) | Y | 메시지 수신 이벤트 serial number |
9.4LINE 사용자 프로필
9.4.1LINE 사용자 프로필 조회
LINE 시스템으로부터 사용자 프로필을 조회합니다.
LINE 공식 계정을 차단한 사용자의 프로필 정보는 가져올 수 없습니다.
- [Request]
GET /profile
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
user_key | text(100) | Y | Line biz 수신 API 메시지 수신의 사용자 ID 필드값 |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
display_name | text | N | 사용자 display name |
user_key | text | N | 사용자 ID |
language | text | N | 사용자 언어
|
picture_url | text | N | 사용자 Profile image URL.
|
status_message | text | N | 사용자 상태 메시지.
|
9.5사용자 인증 정보
9.5.1사용자 인증 정보 설정
사용자 인증 정보를 설정합니다.
- [Request]
POST /user/auth/set
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
user_key | text(100) | Y | Line biz 수신 API 메시지 수신의 사용자 ID 필드값 |
tel_number | text(20) | Y | 고객사 관리 - 사용자 전화번호 |
user_name | text(100) | N | 고객사 관리 - 사용자 이름 |
user_id | text(100) | N | 고객사 관리 - 사용자 ID |
agree_type | int | N | 사용자 인증 구분 0: 지속인증(기본값), 1: 1회성 인증 |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.5.2사용자 인증 정보 조회
사용자 인증 정보를 조회합니다.
- [Request]
GET /user/auth
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
user_key | text(100) | Y | Line biz 수신 API 메시지 수신의 사용자 ID 필드값 |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
sender_key | text | N | LINE Channel ID |
user_key | text | N | LINE 사용자 ID |
tel_number | text | N | 고객사 관리 - 사용자 전화번호 |
user_name | text | N | 고객사 관리 - 사용자 이름 |
user_id | text | N | 고객사 관리 - 사용자 ID |
agree_type | int | N | 사용자 인증 구분 0: 지속인증(기본값), 1: 1회성 인증 |
reg_date | text | N | 등록 일자 |
mod_date | text | N | 수정 일자 |
9.5.3사용자 인증 정보 삭제
사용자 인증 정보를 조회합니다.
- [Request]
POST /user/auth/del
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | LINE Channel ID |
user_key | text(100) | Y | Line biz 수신 API 메시지 수신의 사용자 ID 필드값 |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.6Admin
9.6.1Provider 정보 설정
Line Developer( https://developers.line.biz/en/ )에 등록된 Provider 정보를 설정합니다.
Provider는 여러 개의 Channel을 가질 수 있습니다.
provider id 값을 기준으로 insert, update 처리를 제공합니다.
- [Request]
POST /admin/provider/set
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
provider_id | text(40) | Y | Provider ID |
name | text(100) | Y | Provider Name |
memo | text(100) | Y | 메모 |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.6.2Provider 정보 조회
Provider 정보를 조회합니다.
- [Request]
GET /admin/provider
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
provider_id | text(40) | Y | Provider ID 전체 요청 시 "all" |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
data | json | N | Provider List |
- [Response] - data
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
data | array | - | Provider List | |
provider_id | text | Y | Provider ID | |
name | text | Y | Provider Name | |
memo | text | N | 메모 |
9.6.3Provider 정보 삭제
Provider 정보를 삭제합니다.
- [Request]
POST /admin/provider/del
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
provider_id | text(40) | Y | Provider ID |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.6.4Channel 정보 설정
Line Developer( https://developers.line.biz/en/ )에 등록된 Channel 정보를 설정합니다.
channel id 값을 기준으로 insert, update 처리를 제공합니다.
- [Request]
POST /admin/channel/set
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | Channel ID |
name | text(100) | Y | Channel Name |
provider_id | text(40) | Y | Provider ID - 하나의 Provider가 여러 개의 Channel을 소유 |
secret | text(40) | Y | 메시지 검증용 key -수신시 사용 |
access_token | text(200) | Y | access_token- 발신시 사용 |
bot_basic_id | text(40) | Y | bot id |
is_use | bool | N | 해당 channel의 webhook 수신 사용 설정 true: 사용, false: 미사용 기본값: false |
memo | text(100) | N | 메모 |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.6.5Channel 정보 조회
Provider 정보를 조회합니다.
- [Request]
GET /admin/channel
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | Channel ID 전체 요청 시 "all" |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
data | json | N | Channel List |
- [Response] - data
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
data | - | array | - | Channel List |
sender_key | text | Y | Channel ID | |
name | text | Y | Channel Name | |
provider_id | text | Y | Provider ID - 하나의 Provider가 여러 개의 Channel을 소유 | |
secret | text | Y | 메시지 검증용 key -수신시 사용 | |
access_token | text | Y | access_token- 발신시 사용 | |
bot_basic_id | text | Y | bot id | |
is_use | bool | Y | true: 사용, false: 미사용 | |
memo | text | Y | 메모 |
9.6.6Channel 정보 삭제
Channel 정보를 삭제합니다.
- [Request]
POST /admin/channel/del
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | Channel ID |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.6.7Domain 정보 설정
메시지를 전달할 서버의 URL 정보를 설정합니다. (domain + port)
ex) https://nexus.net:443
- [Request]
POST /admin/domain/set
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | Channel ID |
domain | text(500) | Y | JEDAI 서버의 Domain |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
9.6.8Domain 정보 조회
Domain 정보를 조회합니다.
- [Request]
GET /admin/domain
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | Channel ID 전체 요청 시 "all" |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |
data | json | N | Domain List |
- [Response] - data
키 | - | 타입 | 필수 | 설명 |
---|---|---|---|---|
data | - | array | - | Domain List |
sender_key | text | Y | Channel ID | |
domain | text | Y | Domain | |
reg_date | text | Y | 등록일자 | |
mod_date | text | Y | 수정일자 |
9.6.9Domain 정보 삭제
Domain 정보를 삭제합니다.
- [Request]
POST /admin/domain/del
- [Parameter]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
sender_key | text(40) | Y | Channel ID |
- [Response]
키 | 타입 | 필수 | 설명 |
---|---|---|---|
code | text | Y | 처리 결과 코드(0은 정상 / 나머지는 오류) |
message | text | N | 오류 메시지(오류시 존재하는 값) |