Appearance
Message API #
SMS, LMS, MMS 발송, 발송 예약 기능, 템플릿 관리, 발송 내역 조회 기능을 제공하는 문자 메시지 발송 시스템입니다. 손쉬운 연동을 위한 RESTful API를 제공합니다.
특징 #
- SMS, LMS, MMS 발송을 제공합니다.
- 대량 발송을 지원합니다.
- Excel 파일로 수신자 목록을 입력하고 대량으로 SMS를 발송할 수 있습니다.
- 예약 발송
- 원하는 시간에 문자를 발송할 수 있습니다.
- 치환 태그 제공
- 치환 태그를 이용하여 수신자별 개별화된 SMS 내용을 발송할 수 있습니다.
- 템플릿 기능 제공
- 자주 사용하는 SMS는 템플릿으로 등록하여 사용할 수 있습니다.
주요기능 #
고객의 애플리케이션에서 사용할 수 있는 문자 메시지 발송과 조회 RESTful API를 제공합니다. SMS 발송, 발송 내역 조회, 템플릿 관리를 할 수 있는 UI를 제공합니다.
[API 도메인]
Test
https://stg-api.metaflyer.co.kr
Production
https://api.metaflyer.co.kr
[Header]
Name | Type | Description |
---|---|---|
apiKey | String | 별도 요청 |
[Content-Type]application/json;charset=UTF-8
[Common Response]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String
}
Name | Type | Required | Description |
---|---|---|---|
time | String | true | Response Time 2022-11-07T07:52:35.949+00:00 |
result | String | true | Response Code |
resultMessage | String | true | Response Message |
locale | String | true | API Locale |
SMS #
[URL]
POST /api/message/sendSMS.v1.0
[Request Body]
json
{
"content": String,
"sendDate": String,
"sender": String,
"receivers": [
{
"phoneNumber": String,
"templateData": Map
},
{
"phoneNumber": String,
"templateData": Map
}
]
}
Name | Type | Required | Description |
---|---|---|---|
content | String | true | 메시지 내용 - size :90byte |
sendDate | String | false | 발송시간 - format : yyyy-MM-dd HH:mm |
sender | String | true | 발신자 번호 -format : 010-0000-0000 |
receivers | Array | true | 수신자 정보 |
- phoneNumber | String | true | 수신자 번호 - format 010-0000-0000 |
- templateData | Map | false | 메시지 내용에 포함된 변수 키, 값 "templateData": { "이름": "김한나", "카테고리명": "테스트고객센터" } |
[Response]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String,
"item": {
"requestId": String
}
}
Name | Type | Required | Description |
---|---|---|---|
item | Object | true | |
- requestId | String | true | 발신 요청 ID |
LMS #
[URL]
POST /api/message/sendLMS.v1.0
[Request Body]
json
{
"subject": String,
"content": String,
"sendDate": String,
"sender": String,
"receivers": [
{
"phoneNumber": String,
"templateData": Map
},
{
"phoneNumber": String,
"templateData": Map
}
]
}
Name | Type | Required | Description |
---|---|---|---|
subject | String | false | 메시지 제목 |
content | String | true | 메시지 내용 - size : 2000byte |
sendDate | String | false | 발송시간 -format : yyyy-MM-dd HH:mm |
sender | String | true | 발신자 번호 -format : 010-0000-0000 |
receivers | Array | true | 수신자 정보 |
- phoneNumber | String | true | 수신자 번호 - format 010-0000-0000 |
- templateData | Map | false | 메시지 내용에 포함된 변수 키, 값 "templateData": { "이름": "김한나", "카테고리명": "테스트고객센터" } |
[Response]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String,
"item": {
"requestId": String
}
}
Name | Type | Required | Description |
---|---|---|---|
item | Object | true | |
- requestId | String | true | 발신 요청 ID |
MMS #
[URL]
POST /api/message/sendMMS.v1.0
[Request Body]
json
{
"subject": String,
"content": String,
"sendDate": String,
"sender": String,
"image": {
"contentType": String,
"fileName": String,
"body": String
},
"receivers": [
{
"phoneNumber": String,
"templateData": Map
},
{
"phoneNumber": String,
"templateData": Map
}
]
}
Name | Type | Required | Description |
---|---|---|---|
subject | String | false | 메시지 제목 |
content | String | true | 메시지 내용 - size : 2000byte |
sendDate | String | false | 발송시간 -format : yyyy-MM-dd HH:mm |
sender | String | true | 발신자 번호 -format : 010-0000-0000 |
image | Object | false | 이미지 |
- contentType | String | true | MIME Type - JPG(image/jpeg),JPEG(image/jpeg, SIS(image,vnd.wap.sis) |
- fileName | String | true | File Name |
- body | String | true | File Body - File byte[]를 Base64 인코딩 - size : 50kb 이하 ex) Base64.getEncoder().encodeToString (Files.readAllBytes(file.toPath())) |
receivers | Array | true | 수신자 정보 |
- phoneNumber | String | true | 수신자 번호 - format 010-0000-0000 |
- templateData | Map | false | 메시지 내용에 포함된 변수 키, 값 "templateData": { "이름": "김한나", "카테고리명": "테스트고객센터" } |
[Response Body]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String,
"item": {
"requestId": String
}
}
Name | Type | Required | Description |
---|---|---|---|
item | Object | true | |
requestId | String | true | 발신 요청 ID |
Alimtalk #
[URL]
POST /api/message/sendAlimtalk.v1.0
[Request Body]
json
{
"senderKey": String,
"templateCode": String,
"sendDate": String,
"resend": Boolean,
"resendPhoneNumber": String,
"receivers": [
{
"phoneNumber": String,
"templateData": Map
}
]
}
Name | Type | Required | Description |
---|---|---|---|
senderKey | String | true | 발신 키 |
templateCode | String | true | 알림톡 템플릿 코드 |
sendDate | String | false | 발송시간 - format : yyyy-MM-dd HH:mm |
resend | Boolean | false | 발송 실패 시, 문자 대체 발송 여부 |
resendPhoneNumber | String | false | 대체발송 발신번호 - format 010-0000-0000 |
receivers | Array | true | 수신자 정보 |
- phoneNumber | String | true | 수신자 번호 - format 010-0000-0000 |
- templateData | Map | false | 메시지 내용에 포함된 변수 키, 값 "templateData": { "이름": "김한나", "카테고리명": "테스트고객센터" } |
[Response Body]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String,
"item": {
"requestId": String
}
}
Name | Type | Required | Description |
---|---|---|---|
item | Object | true | |
- requestId | String | true | 발신 요청 ID |
Friend talk #
[URL]
POST /api/message/sendFriendtalk.v1.0
[Request Body]
json
{
"senderKey": String,
"sendDate": String,
"adFlag": Boolean,
"messageType": String,
"image": {
"contentType": String,
"fileName": String,
"body": String
},
"imageLink": String,
"resend": Boolean,
"resendPhoneNumber": String,
"buttons": [
{
"buttonType": String,
"name": String,
"mobileUrl": String,
"pcUrl": String,
"androidUrl": String,
"iosUrl": String,
"chatExtra": String,
"chatEvent": String,
"target": String,
"orderNo": Integer
}
],
"receivers": [
{
"phoneNumber": String,
"templateData": Map
}
]
}
Name | Type | Required | Description |
---|---|---|---|
senderKey | String | true | 발신 키 |
sendDate | String | false | 발송시간 - format : yyyy-MM-dd HH:mm |
adFlag | Boolean | false | 광고 여부 |
image | Object | false | 이미지 |
- contentType | String | true | MIME Type - JPG(image/jpeg),JPEG(image/jpeg, SIS(image,vnd.wap.sis) |
- fileName | String | true | File Name |
- body | String | true | File Body - File byte[]를 Base64 인코딩 - size : 50kb 이하 ex) Base64.getEncoder().encodeToString (Files.readAllBytes(file.toPath())) |
imageLink | String | false | 이미지 링크 |
resend | Boolean | false | 발송 실패 시, 문자 대체 발송 여부 |
resendPhoneNumber | String | false | 대체발송 발신번호 - format 010-0000-0000 |
buttons | Array | false | 버튼 리스트 |
- buttonType | String | false | 버튼타입 - 웹링크(webLink) - 앱링크(appLink) - 채널추가(channelAddition) - 봇 키워드(botKeyword) - 메시지 전달(messageDelivery) - 상담톡 전환(counselingTalkConversion) - 봇 전환(botConversion) - 배송조회페이지로 연결(deliveryTracking) |
- name | String | false | 버튼 명 |
- mobileUrl | String | false | 모바일 웹링크 - 필수 버튼 타입 -- 웹링크(webLink) |
- pcUrl | String | false | pc 웹링크 - 필수 버튼 타입 -- 웹링크(webLink) |
- androidUrl | String | false | Android 앱링크 - 필수 버튼 타입 -- 웹링크(webLink) |
- iosUrl | String | false | IOS 앱링크 - 필수 버튼 타입 -- 웹링크(webLink) |
- chatExtra | String | false | 상담톡 전환, 봇 전환 버튼일 때 전달할 정보 - 필수 버튼 타입 -- 상담톡 전환(counselingTalkConversion) -- 봇 전환(botConversion) |
- chatEvent | String | false | 봇 전환 버튼 일 때, 연결할 이벤트 명 - 필수 버튼 타입 -- 봇 전환(botConversion) |
- target | String | false | 웹링크 버튼인 경우, 아웃링크 기본 인앱 링크로 발송 "target":"out" - 필수 버튼 타입 -- 웹링크(webLink) |
- orderNo | Integer | false | 버튼 순서 |
receivers | Array | true | 수신자 정보 |
- phoneNumber | String | true | 수신자 번호 - format 010-0000-0000 |
- templateData | Map | false | 메시지 내용에 포함된 변수 키, 값 "templateData": { "이름": "김한나", "카테고리명": "테스트고객센터" } |
[Response]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String,
"item": {
"requestId": String
}
}
Name | Type | Required | Description |
---|---|---|---|
item | Object | true | |
requestId | String | true | 발신 요청 ID |
Message List #
[URL]
POST /api/message/list.v1.0
[Request Parameter]
Name | Type | Required | Description |
---|---|---|---|
page | Integer | false | 페이지 번호 - default : 1 |
pageSize | Integer | false | 페이지 조회 건수 - default : 10 |
requestId | String | false | 발신 요청 ID |
messageId | String | false | 발신 메시지 ID |
messageProductType | String | false | 메시지 상품 유형 - SMS (sms) - LMS (lms) - MMS (mms) - Email (email) - Push (push) - 알림톡 (alimTalk) - 친구톡 Text (friendTalkText) - 친구톡 Image (friendTalkImage) - 친구톡 Wid Image (friendTalkWideImage) |
sendingStatus | String | false | 발송 상태 - 대기 (waiting) - 발송중 (sending) - 완료 (completed) - 실패 (fail) - 취소 (cancel) |
receivers | String | true | 수신자 - format : 010-0000-0000 |
channelId | String | false | 카카오톡 채널 ID |
senderKey | String | false | 카카오톡 발신 프로필 키 |
templateCode | String | false | 카카오톡 알림톡 템플릿 코드 |
yyyyMM | String | false | 방송 연월 |
requestDate | String | false | 발송 요청일 검색기간 - format : yyyy-MM-dd HH:mm |
scheduledDate | String | false | 발송 예정일 검색기간 - format : yyyy-MM-dd HH:mm |
completeDate | String | false | 발송 완료일 검색기간 - format : yyyy-MM-dd HH:mm |
[Response]
json
{
"time": String,
"result": String,
"resultMessage": String,
"locale": String,
"totalCount": Integer,
"resultCount": Integer,
"pageSize": Integer,
"pageCount": Integer,
"currentPage": Integer,
"items": [
{
"id": String,
"label": String,
"messageId": String,
"requestId": String,
"messageProductType": {
"value": String,
"label": String
},
"sendingStatus": {
"value": String,
"label": String
},
"receiver": String,
"channelId": String,
"senderKey": String,
"templateCode": String,
"yyyyMM": String,
"requestDate": String,
"scheduledDate": String,
"completedDate": String,
"subject": String,
"content": String
}
]
}
Name | Type | Required | Description |
---|---|---|---|
totalCount | Integer | true | 총 건수 |
resultCount | Integer | true | 현재 조회중 건수 |
pageSize | Integer | true | 페이지 조회 건수 |
pageCount | Integer | true | 총 페이지 수 |
currentPage | Integer | true | 현재 페이지 번호 |
items | Object | false | 메시지 정보 |
- id | String | false | ID |
- messageId | String | true | 발신 메시지 ID |
- requestId | String | true | 발신 요청 ID |
- messageProductType | Object | true | 메시지 상품 유형 - SMS (sms) - LMS (lms) - MMS (mms) - Email (email) - Push (push) - 알림톡 (alimTalk) - 친구톡 Text (friendTalkText) - 친구톡 Image (friendTalkImage) - 친구톡 Wid Image (friendTalkWideImage) |
-- value | String | true | 메시지 상품 유형 코드 |
-- label | String | true | 메시지 상품 유형 명 |
- sendingStatus | Object | true | 발송 상태 - 대기 (waiting) - 발송중 (sending) - 완료 (completed) - 실패 (fail) - 취소 (cancel) |
-- value | String | true | 발송 상태 코드 |
-- label | String | true | 발송 상태 명 |
- receivers | String | true | 수신자 - format : 010-0000-0000 |
- channelId | String | false | 카카오톡 채널 ID |
- senderKey | String | false | 카카오톡 발신 프로필 키 |
- templateCode | String | false | 카카오톡 알림톡 템플릿 코드 |
- yyyyMM | String | true | 방송 연월 |
- requestDate | String | true | 발송 요청일 |
- scheduledDate | String | ture | 발송 예정일 |
- completeDate | String | false | 발송 완료일 |
- subject | String | false | 제목 |
- content | String | true | 메시지 본문 |