도메인 |
---|
https://api-alimtalk.cloud.toast.com |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/messages
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
X-NC-API-IDEMPOTENCY-KEY | String | X | 중복 메시지 발송 요청 기준 key 10분간 동일한 key로 요청 시 해당 요청을 실패 처리합니다. |
(광고)내용[무료 수신거부]080XXXXXXX
[Request body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"content": String,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- content | String | O | 내용(최대 1,000자) 이미지 발송 시 최대 400자 와이드 이미지 발송 시 최대 76자 |
- buttons | List | X | 버튼(최대 5개, 쿠폰이 포함될 경우 최대 4개) 와이드 이미지 발송 시 링크 버튼 최대 2개 |
-- ordering | Integer | X | 버튼 순서(버튼이 있는 경우 필수) |
-- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
-- name | String | X | 버튼 이름(버튼이 있는 경우 필수) |
-- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | X | BC(상담톡 전환) / BT(봇 전환) 타입 버튼일 경우 전달할 메타정보 |
-- chatEvent | String | X | BT(봇 전환) 타입 버튼일 경우 연결할 봇 이벤트명 |
-- bizFormKey | String | X | BF(비즈니스 폼) 타입 버튼일 경우 비즈폼 키 |
-- target | String | X | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- coupon | Object | X | 쿠폰 |
-- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
-- description | String | X | 쿠폰 상세 설명(일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
-- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
-- linkPc | String | X | PC 웹 링크 |
-- schemeIos | String | X | iOS 앱 링크 |
-- schemeAndroid | String | X | 안드로이드 앱 링크 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | X | 광고 여부(기본값 true) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[Request body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"content": String,
"imageUrl": String,
"imageLink": String,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"adult": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- content | String | O | 내용(최대 1,000자) 이미지 발송 시, 최대 400자 와이드 이미지 발송 시, 최대 76자 |
- imageUrl | String | O | 이미지 URL |
- imageLink | String | X | 이미지 링크 |
- buttons | List | X | 버튼(최대 5개, 쿠폰이 포함될 경우 최대 4개) 와이드 이미지 발송 시 링크 버튼 최대 2개 |
-- ordering | Integer | X | 버튼 순서(버튼이 있는 경우 필수) |
-- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
-- name | String | X | 버튼 이름(버튼이 있는 경우 필수) |
-- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | X | BC(상담톡 전환) / BT(봇 전환) 타입 버튼 시 전달할 메타정보 |
-- chatEvent | String | X | BT(봇 전환) 타입 버튼 시 연결할 봇 이벤트명 |
-- bizFormKey | String | X | BF(비즈니스 폼) 타입 버튼 시 비즈폼 키 |
-- target | String | X | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- coupon | Object | X | 쿠폰 |
-- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
-- description | String | X | 쿠폰 상세 설명 (일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
-- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
-- linkPc | String | X | PC 웹 링크 |
-- schemeIos | String | X | iOS 앱 링크 |
-- schemeAndroid | String | X | 안드로이드 앱 링크 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | X | 광고 여부(기본값 true) |
- adult | Boolean | X | 성인용 메시지 여부(기본값 false) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[Request Body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"header": String,
"item": {
"list": [
{
"title": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
},
{
"title": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
},
{
"title": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
}
]
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"adult": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- buttons | List | X | 버튼 와이드 이미지 발송 시 링크 버튼 최대 2개 |
-- ordering | Integer | X | 버튼 순서(버튼이 있는 경우 필수) |
-- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
-- name | String | X | 버튼 이름(버튼이 있는 경우 필수) |
-- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | X | BC(상담톡 전환) / BT(봇 전환) 타입 버튼 시 전달할 메타정보 |
-- chatEvent | String | X | BT(봇 전환) 타입 버튼 시 연결할 봇 이벤트명 |
-- bizFormKey | String | X | BF(비즈니스 폼) 타입 버튼 시 비즈폼 키 |
-- target | String | X | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- header | String | O | 헤더(와이드 아이템 리스트 메시지 타입 사용 시, 필수, 최대 25자) |
- item | Object | O | 와이드 아이템 |
-- list | List | O | 와이드 아이템 리스트(최소 3개, 최대 4개) |
--- title | String | O | 아이템 제목(첫 번째 아이템의 경우 최대 25자, 2~4번째 아이템의 경우 최대 30자) |
--- imageUrl | String | O | 아이템 이미지 URL |
--- linkMo | String | O | 모바일 웹 링크 |
--- linkPc | String | X | PC 웹 링크 |
--- schemeIos | String | X | iOS 앱 링크 |
--- schemeAndroid | String | X | 안드로이드 앱 링크 |
- coupon | Object | X | 쿠폰 |
-- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
-- description | String | X | 쿠폰 상세 설명 (일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
-- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
-- linkPc | String | X | PC 웹 링크 |
-- schemeIos | String | X | iOS 앱 링크 |
-- schemeAndroid | String | X | 안드로이드 앱 링크 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | X | 광고 여부(기본값 true) |
- adult | Boolean | X | 성인용 메시지 여부(기본값 false) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[Request Body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"carousel": {
"list": [
{
"header": String,
"message": String,
"attachment": {
"buttons": [
{
"name": String,
"type": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String,
}
],
"image":{
"imageUrl": String,
"imageLink": String
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
}
}
},
{
"header": String,
"message": String,
"attachment": {
"buttons": [
{
"name": String,
"type": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String,
}
],
"image":{
"imageUrl": String,
"imageLink": String
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
}
}
}
],
"tail": {
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
}
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"adult": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- carousel | Object | O | 캐러셀 |
-- list | List | O | 캐러셀 리스트(최소 2개, 최대 10개) |
--- header | String | O | 캐러셀 아이템 제목(최대 20자), 캐러셀 피드형에서만 사용 가능 |
--- message | String | O | 캐러셀 아이템 메시지(최대 180자), 캐러셀 피드형에서만 사용 가능 |
--- attachment | Object | O | 캐러셀 아이템 이미지, 버튼 정보 |
---- buttons | List | X | 버튼 리스트(최대 2개) |
----- name | String | X | 버튼 이름(버튼이 있는 경우 필수, 최대 8자) |
----- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
----- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
----- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
----- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
----- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
---- image | Object | O | |
----- imageUrl | String | O | 이미지 URL (캐러셀 피드형 이미지만 사용 가능합니다. 캐러셀 커머스 이미지 사용 불가) |
----- imageLink | String | X | 이미지 링크 |
---- coupon | Object | X | 쿠폰 |
----- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
----- description | String | X | 쿠폰 상세 설명 (일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
----- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
----- linkPc | String | X | PC 웹 링크 |
----- schemeIos | String | X | iOS 앱 링크 |
----- schemeAndroid | String | X | 안드로이드 앱 링크 |
-- tail | Object | X | 더보기 버튼 정보 |
--- linkMo | String | O | 모바일 웹 링크 |
--- linkPc | String | X | PC 웹 링크 |
--- schemeIos | String | X | iOS 앱 링크 |
--- schemeAndroid | String | X | 안드로이드 앱 링크 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | O | 광고 여부(캐러셀 피드형은 광고 타입만 발송 가능) |
- adult | Boolean | X | 성인용 메시지 여부(기본값 false) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[Request Body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"carousel": {
"head": {
"header": String,
"content": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"list": [
{
"additionalContent": String,
"attachment": {
"buttons": [
{
"name": String,
"type": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String,
}
],
"image":{
"imageUrl": String,
"imageLink": String
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"commerce": {
"title": String,
"regularPrice": String,
"discountPrice": String,
"discountRate": String,
"discountFixed": String
}
}
},
{
"additionalContent": String,
"attachment": {
"buttons": [
{
"name": String,
"type": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String,
}
],
"image":{
"imageUrl": String,
"imageLink": String
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"commerce": {
"title": String,
"regularPrice": Integer,
"discountPrice": Integer,
"discountRate": Integer,
"discountFixed": Integer
}
}
}
],
"tail": {
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
}
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"adult": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- carousel | Object | O | 캐러셀 |
-- head | String | X | 캐러셀 인트로 정보 (캐러셀 커머스형에서만 사용 가능) |
--- header | String | O | 캐러셀 인트로 헤더(최대 20자) |
--- content | String | O | 캐러셀 인트로 내용(최대 50자) |
--- imageUrl | String | O | 캐러셀 인트로 이미지 주소(사용되는 이미지는 캐러셀의 이미지와 비율이 동일해야 합니다.) |
--- linkMo | String | X | 모바일 환경에서 인트로 클릭시 이동할 웹 링크 |
--- linkPc | String | X | PC 환경에서 인트로 클릭시 이동할 웹 링크 |
--- schemeIos | String | X | iOS 환경에서 인트로 클릭시 이동할 앱 링크 |
--- schemeAndroid | String | X | 안드로이드 환경에서 인트로 클릭시 이동할 앱 링크 |
-- list | List | O | 캐러셀 리스트(최소 2개, 최대 10개) |
--- additionalContent | String | X | 부가 정보(최대 34자), 캐러셀 커머스형에서만 사용 가능 |
--- attachment | Object | O | 캐러셀 아이템 이미지, 버튼 정보 |
---- buttons | List | X | 버튼 리스트(최대 2개) |
----- name | String | X | 버튼 이름(버튼이 있는 경우 필수, 최대 8자) |
----- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
----- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
----- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
----- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
----- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
---- image | Object | O | |
----- imageUrl | String | O | 이미지 URL (캐러셀 커머스 이미지만 사용 가능합니다. 사용되는 이미지는 다른 캐러셀 커머스 이미지 및 인트로의 이미지와 비율이 동일해야 합니다.) |
----- imageLink | String | X | 이미지 링크 |
---- coupon | Object | X | 쿠폰 |
----- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
----- description | String | X | 쿠폰 상세 설명 (일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
----- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
----- linkPc | String | X | PC 웹 링크 |
----- schemeIos | String | X | iOS 앱 링크 |
----- schemeAndroid | String | X | 안드로이드 앱 링크 |
---- commerce | Object | O | 커머스(캐러셀 커머스형에서만 사용 가능) |
----- title | String | O | 상품 제목(최대 30자) |
----- regularPrice | Integer | O | 정상가격(0 ~ 99,999,999) |
----- discountPrice | Integer | X | 할인가격(0 ~ 99,999,999) |
----- discountRate | Integer | X | 할인율(0 ~ 100), 할인가격 존재시 할인율, 정액할인 가격 중 하나는 필수 |
----- discountFixed | Integer | X | 정액할인가격(0 ~ 999,999), 할인가격 존재시 할인율, 정액할인 가격 중 하나는 필수 |
-- tail | Object | X | 더보기 버튼 정보 |
--- linkMo | String | O | 모바일 웹 링크 |
--- linkPc | String | X | PC 웹 링크 |
--- schemeIos | String | X | iOS 앱 링크 |
--- schemeAndroid | String | X | 안드로이드 앱 링크 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | O | 광고 여부(캐러셀 커머스형은 광고 타입만 발송 가능) |
- adult | Boolean | X | 성인용 메시지 여부(기본값 false) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[Request body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"content": String,
"header": String,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"video": {
"videoUrl": String,
"videoLink": String
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"adult": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- content | String | O | 내용(최대 1,000자) 이미지 발송 시, 최대 400자 와이드 이미지 발송 시, 최대 76자 |
- header | String | O | 헤더(프리미엄 비디오 타입 사용 시, 선택, 최대 25자) |
- buttons | List | X | 버튼(최대 5개, 쿠폰이 포함될 경우 최대 4개) 와이드 이미지 발송 시, 링크 버튼 최대 2개 |
-- ordering | Integer | X | 버튼 순서(버튼이 있는 경우 필수) |
-- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
-- name | String | X | 버튼 이름(버튼이 있는 경우 필수) |
-- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | X | BC(상담톡 전환) / BT(봇 전환) 타입 버튼 시 전달할 메타정보 |
-- chatEvent | String | X | BT(봇 전환) 타입 버튼 시 연결할 봇 이벤트명 |
-- bizFormKey | String | X | BF(비즈니스 폼) 타입 버튼 시 비즈폼 키 |
-- target | String | X | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- coupon | Object | X | 쿠폰 |
-- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
-- description | String | X | 쿠폰 상세 설명 (일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
-- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
-- linkPc | String | X | PC 웹 링크 |
-- schemeIos | String | X | iOS 앱 링크 |
-- schemeAndroid | String | X | 안드로이드 앱 링크 |
- video | Object | O | 비디오 |
-- videoUrl | String | O | 카카오TV 동영상 URL (카카오TV에 업로드된 동영상 주소만 사용 가능) |
-- thumbnailUrl | String | X | 동영상 썸네일용 이미지 URL, 일반 이미지로 업로드된 url만 사용 가능, 없는 경우 카카오TV 동영상 기본 썸네일 사용 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | X | 광고 여부(기본값 true) |
- adult | Boolean | X | 성인용 메시지 여부(기본값 false) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[Request body]
{
"senderKey": String,
"requestDate": String,
"senderGroupingKey": String,
"createUser": String,
"recipientList": [{
"recipientNo": String,
"additionalContent": String,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"commerce": {
"title": String,
"regularPrice": Integer,
"discountPrice": Integer
"discountRate": Integer
"discountFixed": Integer
},
"resendParameter": {
"isResend": boolean,
"resendType": String,
"resendTitle": String,
"resendContent": String,
"resendSendNo": String,
"resendUnsubscribeNo": String
},
"isAd": Boolean,
"adult": Boolean,
"recipientGroupingKey": String
}],
"statsId": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키(40자) |
requestDate | String | X | 요청 일시(yyyy-MM-dd HH:mm), 필드를 보내지 않을 경우 즉시 발송 |
senderGroupingKey | String | X | 발신 그룹핑 키(최대 100자) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
recipientList | List | O | 수신자 목록(최대 1,000명) |
- recipientNo | String | O | 수신 번호 |
- additionalContent | String | X | 부가 정보(최대 34자), 커머스형에서만 사용 가능 |
- buttons | List | X | 버튼(최대 5개, 쿠폰이 포함될 경우 최대 4개) 와이드 이미지 발송 시, 링크 버튼 최대 2개 |
-- ordering | Integer | X | 버튼 순서(버튼이 있는 경우 필수) |
-- type | String | X | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
-- name | String | X | 버튼 이름(버튼이 있는 경우 필수) |
-- linkMo | String | X | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | X | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | X | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | X | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | X | BC(상담톡 전환) / BT(봇 전환) 타입 버튼 시 전달할 메타정보 |
-- chatEvent | String | X | BT(봇 전환) 타입 버튼 시 연결할 봇 이벤트명 |
-- bizFormKey | String | X | BF(비즈니스 폼) 타입 버튼 시 비즈폼 키 |
-- target | String | X | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- coupon | Object | X | 쿠폰 |
-- title | String | X | title의 경우 5가지 형식으로 제한됨 "${숫자}원 할인 쿠폰" 숫자는 1 이상 99,999,999 이하 "${숫자}% 할인 쿠폰" 숫자는 1 이상 100 이하 "배송비 할인 쿠폰" "${7자 이내} 무료 쿠폰" "${7자 이내} UP 쿠폰" |
-- description | String | X | 쿠폰 상세 설명 (일반 텍스트, 이미지형, 캐러셀 피드형 최대 12자 / 와이드 이미지형, 와이드 아이템 리스트형 최대 18자) |
-- linkMo | String | X | 모바일 웹 링크(하단 필수 조건 확인) |
-- linkPc | String | X | PC 웹 링크 |
-- schemeIos | String | X | iOS 앱 링크 |
-- schemeAndroid | String | X | 안드로이드 앱 링크 |
- commerce | Object | O | 커머스(커머스형에서만 사용 가능) |
-- title | String | O | 상품제목(최대 30자) |
-- regularPrice | Integer | O | 정상가격(0 ~ 99,999,999) |
-- discountPrice | Integer | X | 할인가격(0 ~ 99,999,999) |
-- discountRate | Integer | X | 할인율(0 ~ 100), 할인가격 존재시 할인율, 정액할인가격 중 하나는 필수 |
-- discountFixed | Integer | X | 정액할인가격(0 ~ 999,999), 할인가격 존재시 할인율, 정액할인가격 중 하나는 필수 |
- resendParameter | Object | X | 대체 발송 정보 |
-- isResend | boolean | X | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시 기본으로 재발송됩니다. |
-- resendType | String | X | 대체 발송 타입(SMS, LMS) 값이 없을 경우 템플릿 본문 길이에 따라 타입이 구분됩니다. |
-- resendTitle | String | X | LMS 대체 발송 제목 (값이 없을 경우 플러스친구 ID로 재발송됩니다.) |
-- resendContent | String | X | 대체 발송 내용 (값이 없을 경우 [메시지 본문과 웹링크 버튼명 - 웹링크 Mobile 링크]으로 재발송됩니다.) |
-- resendSendNo | String | X | 대체 발송 발신 번호 (SMS 서비스에 등록된 발신 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
-- resendUnsubscribeNo | String | X | 대체 발송 080 수신 거부 번호 (SMS 서비스에 등록된 080 수신 거부 번호가 아닐 경우 대체 발송에 실패할 수 있습니다.) |
- isAd | Boolean | X | 광고 여부(기본값 true) |
- adult | Boolean | X | 성인용 메시지 여부(기본값 false) |
- recipientGroupingKey | String | X | 수신자 그룹핑 키(최대 100자) |
statsId | String | X | 통계 ID(발신 검색 조건에는 포함되지 않습니다, 최대 8자) |
[예시]
curl -X POST -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/messages -d '{"senderKey":"9e0afe2c12aaaaaaaaaa7520052880b555f1a60a","requestDate":"yyyy-MM-dd HH:mm","recipientList":[{"recipientNo":"010-0000-0000","imageSeq":1,"imageLink":"https://toast.com","content":"내용","buttons":[{"ordering":1,"type":"WL","name":"버튼1","linkMo":"https://toast.com","linkPc":"https://toast.com"}]}]}'
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"message": {
"requestId": String,
"senderGroupingKey": String,
"sendResults": [
{
"recipientSeq": Integer,
"recipientNo": String,
"resultCode": Integer,
"resultMessage": String,
"recipientGroupingKey": String
}
]
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
message | Object | 본문 영역 |
- requestId | String | 요청 ID |
- senderGroupingKey | String | 발신 그룹핑 키 |
- sendResults | Object | 발송 요청 결과 |
-- recipientSeq | Integer | 수신자 시퀀스 번호 |
-- recipientNo | String | 수신 번호 |
-- resultCode | Integer | 발송 요청 결과 코드 |
-- resultMessage | String | 발송 요청 결과 메시지 |
-- recipientGroupingKey | String | 수신자 그룹핑 키 |
[URL]
GET /friendtalk/v2.4/appkeys/{appkey}/messages
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Query parameter] 1번 or(2번, 3번) 조건 필수
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
requestId | String | 조건 필수(1번) | 요청 ID |
startRequestDate | String | 조건 필수(2번) | 발송 요청 날짜 시작 값(yyyy-MM-dd HH:mm) |
endRequestDate | String | 조건 필수(2번) | 발송 요청 날짜 끝 값(yyyy-MM-dd HH:mm) |
startCreateDate | String | 조건 필수(3번) | 등록 날짜 시작 값(yyyy-MM-dd HH:mm) |
endCreateDate | String | 조건 필수(3번) | 등록 날짜 끝 값(yyyy-MM-dd HH:mm) |
recipientNo | String | X | 수신 번호 |
senderKey | String | X | 발신 키 |
senderGroupingKey | String | X | 발신 그룹핑 키 |
recipientGroupingKey | String | X | 수신자 그룹핑 키 |
messageStatus | String | X | 요청 상태(COMPLETED: 성공, FAILED: 실패) |
resultCode | String | X | 발송 결과(MRC01: 성공 MRC02: 실패 ) |
createUser | String | X | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
pageNum | Integer | X | 페이지 번호(Default: 1) |
pageSize | Integer | X | 조회 건수(Default: 15, Max: 1000) |
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"messageSearchResultResponse": {
"messages": [
{
"requestId": String,
"recipientSeq": Integer,
"plusFriendId": String,
"senderKey": String,
"recipientNo": String,
"requestDate": String,
"createDate": String,
"receiveDate": String,
"content": String,
"messageStatus": String,
"resendStatus": String,
"resendStatusName": String,
"resultCode": String,
"resultCodeName": String,
"createUser": String,
"senderGroupingKey": String,
"recipientGroupingKey": String
}
],
"totalCount": Integer
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
messageSearchResultResponse | Object | 본문 영역 |
- messages | List | 메시지 리스트 |
-- requestId | String | 요청 ID |
-- recipientSeq | Integer | 수신자 시퀀스 번호 |
-- plusFriendId | String | 플러스친구 ID |
-- senderKey | String | 발신 키 |
-- recipientNo | String | 수신 번호 |
-- requestDate | String | 요청 일시 |
-- createDate | String | 등록 일시 |
-- receiveDate | String | 수신 일시 |
-- content | String | 본문 |
-- messageStatus | String | 요청 상태(COMPLETED: 성공, FAILED: 실패) |
-- resendStatus | String | 재발송 상태 코드 |
-- resendStatusName | String | 재발송 상태 코드명 |
-- resultCode | String | 수신 결과 코드 |
-- resultCodeName | String | 수신 결과 코드명 |
-- createUser | String | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
-- senderGroupingKey | String | 발신 그룹핑 키 |
-- recipientGroupingKey | String | 수신자 그룹핑 키 |
- totalCount | Integer | 총 개수 |
[예시]
curl -X GET -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/messages?startRequestDate=2018-05-01%2000:00&endRequestDate=2018-05-30%2023:59"
이름 | 설명 |
---|---|
RSC01 | 재발송 미대상 |
RSC02 | 재발송 대상(발송 결과 실패 시 재발송이 진행됩니다.) |
RSC03 | 재발송 중 |
RSC04 | 재발송 성공 |
RSC05 | 재발송 실패 |
[URL]
GET /friendtalk/v2.4/appkeys/{appkey}/messages/{requestId}/{recipientSeq}
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Query parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
requestId | String | O | 요청 ID |
recipientSeq | Integer | O | 수신자 시퀀스 번호 |
[예시]
curl -X GET -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/messages/{requestId}/{recipientSeq}"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"message": {
"requestId": String,
"recipientSeq": Integer,
"plusFriendId": String,
"senderKey": String,
"recipientNo": String,
"requestDate": String,
"createDate": String,
"receiveDate": String,
"content": String,
"messageStatus": String,
"resendStatus": String,
"resendStatusName": String,
"resendResultCode": String,
"resendRequestId": String,
"resultCode": String,
"resultCodeName": String,
"createUser": String,
"imageSeq": Integer,
"imageName": String,
"imageUrl": String,
"imageLink": String,
"wide": Boolean,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"header": String,
"item": {
"list": [
{
"title": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
}
]
},
"carousel": {
"head": {
"header": String,
"content": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
},
"list": [
{
"header": String,
"message": String,
"addtionalContent": String,
"attachment": {
"buttons": [
{
"name": String,
"type": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String,
}
],
"image":{
"imageUrl": String,
"imageLink": String
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"commerce": {
"title": String,
"regularPrice": Integer,
"discountPrice": Integer,
"discountRate": Integer,
"discountFixed": Integer
}
}
}
],
"tail": {
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
}
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"video": {
"videoUrl": String,
"thumbnailUrl": String
},
"commerce": {
"title": String,
"regularPrice": Integer,
"discountPrice": Integer,
"discountRate": Integer,
"discountFixed": Integer
},
"isAd": Boolean,
"adult": Boolean,
"senderGroupingKey": String,
"recipientGroupingKey": String
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
message | Object | 메시지 |
- requestId | String | 요청 ID |
- recipientSeq | Integer | 수신자 시퀀스 번호 |
- plusFriendId | String | 플러스친구 ID |
- senderKey | String | 발신 키 |
- recipientNo | String | 수신 번호 |
- requestDate | String | 요청 일시 |
- createDate | String | 등록 일시 |
- receiveDate | String | 수신 일시 |
- content | String | 본문 |
- messageStatus | String | 요청 상태(COMPLETED: 성공, FAILED: 실패) |
- resendStatus | String | 재발송 상태 코드 |
- resendStatusName | String | 재발송 상태 코드명 |
- resendResultCode | String | 재발송 결과 코드 SMS 결과 코드 |
- resendRequestId | String | 재발송 SMS 요청 ID |
- resultCode | String | 수신 결과 코드 |
- resultCodeName | String | 수신 결과 코드명 |
- createUser | String | 등록자(콘솔에서 발송 시 사용자 UUID로 저장) |
- imageSeq | Integer | 이미지 번호 |
- imageName | String | 이미지명(업로드한 파일명) |
- imageUrl | String | 이미지 URL |
- imageLink | String | 이미지 링크 |
- wide | boolean | 와이드 이미지 여부 |
- buttons | List | 버튼 리스트 |
-- ordering | Integer | 버튼 순서 |
-- type | String | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달) |
-- name | String | 버튼 이름(최대 28자, 와이드 아이템 리스트일 경우, 9자) |
-- linkMo | String | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | BC(상담톡 전환) / BT(봇 전환) 타입 버튼 시 전달할 메타정보 |
-- chatEvent | String | BT(봇 전환) 타입 버튼 시 연결할 봇 이벤트명 |
-- bizFormKey | String | BF(비즈니스 폼) 타입 버튼 시 비즈폼 키 |
-- target | String | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- header | String | 헤더(와이드 아이템 리스트 메시지 타입 사용 시, 필수, 최대 25자) |
- additionalContent | String | 부가 정보(최대 34자), 커머스형에서만 사용 가능 |
- item | Object | 와이드 아이템 |
-- list | List | 와이드 아이템 리스트(최소 3개, 최대 4개) |
--- title | String | 아이템 제목(첫 번째 아이템의 경우 최대 25자, 2~4번째 아이템의 경우 최대 30자) |
--- imageUrl | String | 아이템 이미지 URL |
--- linkMo | String | 모바일 웹 링크 |
--- linkPc | String | PC 웹 링크 |
--- schemeIos | String | iOS 앱 링크 |
--- schemeAndroid | String | 안드로이드 앱 링크 |
- carousel | Object | 캐러셀 |
-- head | String | 캐러셀 인트로 정보 |
--- header | String | 캐러셀 인트로 헤더(최대 20자) |
--- content | String | 캐러셀 인트로 내용(최대 50자) |
--- imageUrl | String | 캐러셀 인트로 이미지 주소 |
--- linkMo | String | 모바일 환경에서 인트로 클릭시 이동할 웹 링크 |
--- linkPc | String | PC 환경에서 인트로 클릭시 이동할 웹 링크 |
--- schemeIos | String | iOS 환경에서 인트로 클릭시 이동할 앱 링크 |
--- schemeAndroid | String | 안드로이드 환경에서 인트로 클릭시 이동할 앱 링크 |
-- list | List | 캐러셀 리스트(최소 2개, 최대 10개) |
--- header | String | 캐러셀 아이템 제목(최대 20자) |
--- message | String | 캐러셀 아이템 메시지(최대 180자) |
--- additionalContent | String | 부가 정보(최대 34자) |
--- attachment | Object | 캐러셀 아이템 이미지, 버튼 정보 |
---- buttons | List | 버튼 리스트(최대 2개) |
----- name | String | 버튼 이름(버튼이 있는 경우 필수, 최대 8자) |
----- type | String | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
----- linkMo | String | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
----- linkPc | String | PC 웹 링크(WL 타입일 경우 선택 필드) |
----- schemeIos | String | iOS 앱 링크(AL 타입일 경우 필수 필드) |
----- schemeAndroid | String | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
---- image | Object | 이미지 |
----- imageUrl | String | 이미지 URL |
----- imageLink | String | 이미지 링크 |
---- coupon | Object | 쿠폰 |
----- title | String | 쿠폰 title |
----- description | String | 쿠폰 상세 설명 |
----- linkMo | String | 모바일 웹 링크 |
----- linkPc | String | PC 웹 링크 |
----- schemeIos | String | iOS 앱 링크 |
----- schemeAndroid | String | 안드로이드 앱 링크 |
---- commerce | Object | 커머스 |
----- title | String | 상품 제목(최대 30자) |
----- regularPrice | Integer | 정상가격(0 ~ 99,999,999) |
----- discountPrice | Integer | 할인가격(0 ~ 99,999,999) |
----- discountRate | Integer | 할인율(0 ~ 100), 할인가격 존재시 할인율 |
----- discountFixed | Integer | 정액할인가격(0 ~ 999,999) |
-- tail | Object | 더보기 버튼 정보 |
--- linkMo | String | 모바일 웹 링크 |
--- linkPc | String | PC 웹 링크 |
--- schemeIos | String | iOS 앱 링크 |
--- schemeAndroid | String | 안드로이드 앱 링크 |
- coupon | Object | 쿠폰 |
-- title | String | 쿠폰 title |
-- description | String | 쿠폰 상세 설명 |
-- linkMo | String | 모바일 웹 링크 |
-- linkPc | String | PC 웹 링크 |
-- schemeIos | String | iOS 앱 링크 |
-- schemeAndroid | String | 안드로이드 앱 링크 |
- video | Object | 비디오 |
-- videoUrl | String | 카카오TV 동영상 URL |
-- thumbnailUrl | String | 동영상 썸네일용 이미지 URL |
- commerce | Object | 커머스 |
-- title | String | 상품 제목(최대 30자) |
-- regularPrice | Integer | 정상가격(0 ~ 99,999,999) |
-- discountPrice | Integer | 할인가격(0 ~ 99,999,999) |
-- discountRate | Integer | 할인율(0 ~ 100), 할인가격 존재시 할인율 |
-- discountFixed | Integer | 정액할인가격(0 ~ 999,999) |
- isAd | Boolean | 광고 여부 |
- adult | Boolean | 성인용 메시지 여부 |
- senderGroupingKey | String | 발신 그룹핑 키 |
- recipientGroupingKey | String | 수신자 그룹핑 키 |
[URL]
DELETE /friendtalk/v2.4/appkeys/{appkey}/messages/{requestId}
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
requestId | String | 요청 ID |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Query parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
recipientSeq | String | X | 수신자 시퀀스 번호 (입력하지 않으면 요청 ID의 모든 발송 건을 취소) |
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
[예시]
curl -X DELETE -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/messages/{requestId}?recipientSeq=1,2,3"
[URL]
GET /friendtalk/v2.4/appkeys/{appkey}/message-results
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Query parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
startUpdateDate | String | O | 결과 업데이트 조회 시작 시간(yyyy-MM-dd HH:mm) |
endUpdateDate | String | O | 결과 업데이트 조회 종료 시간(yyyy-MM-dd HH:mm) |
pageNum | Integer | X | 페이지 번호(기본: 1) |
pageSize | Integer | X | 조회 건수(기본: 15) |
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"messageSearchResultResponse": {
"messages": [
{
"requestId": String,
"recipientSeq": Integer,
"plusFriendId": String,
"senderKey": String,
"recipientNo": String,
"requestDate": String,
"receiveDate": String,
"content": String,
"messageStatus": String,
"resendStatus": String,
"resendStatusName": String,
"resultCode": String,
"resultCodeName": String,
"senderGroupingKey": String,
"recipientGroupingKey": String
}
],
"totalCount": Integer
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
messageSearchResultResponse | Object | 본문 영역 |
- messages | List | 메시지 리스트 |
-- requestId | String | 요청 ID |
-- recipientSeq | Integer | 수신자 시퀀스 번호 |
-- plusFriendId | String | 플러스친구 ID |
-- senderKey | String | 발신 키 |
-- recipientNo | String | 수신 번호 |
-- requestDate | String | 요청 일시 |
-- receiveDate | String | 수신 일시 |
-- content | String | 본문 |
-- messageStatus | String | 요청 상태(COMPLETED -> 성공, FAILED -> 실패, CANCEL -> 취소 ) |
-- resendStatus | String | 재발송 상태 코드 |
-- resendStatusName | String | 재발송 상태 코드명 |
-- resultCode | String | 수신 결과 코드 |
-- resultCodeName | String | 수신 결과 코드명 |
-- senderGroupingKey | String | 발신 그룹핑 키 |
-- recipientGroupingKey | String | 수신자 그룹핑 키 |
- totalCount | Integer | 총 개수 |
[예시]
curl -X GET -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/message-results?startUpdateDate=2018-05-01%20:00&endUpdateDate=2018-05-30%20:59"
[URL]
GET /friendtalk/v2.4/appkeys/{appKey}/mass-messages
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appKey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 설명 |
---|---|---|
X-Secret-Key | String | 고유의 비밀 키 |
[Query parameter] * requestId 또는 startRequestDate + endRequestDate 또는 startCreateDate + endCreateDate는 필수입니다.
이름 | 타입 | 최대 길이 | 필수 | 설명 |
---|---|---|---|---|
requestId | String | - | O | 요청 ID |
startRequestDate | String | - | O | 발송 날짜 시작 |
endRequestDate | String | - | O | 발송 날짜 종료 |
startCreateDate | String | - | O | 등록 날짜 시작 |
endCreateDate | String | - | O | 등록 날짜 종료 |
pageNum | optional, Integer | - | X | 페이지 번호 |
pageSize | optional, Integer | 1000 | X | 검색 수 |
curl -X GET \
'https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appKey}/'"${APP_KEY}"'/mass-messages?requestId='"${REQUEST_ID}" \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'X-Secret-Key:{secretkey}'
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"body": {
"messages": [
{
"requestId": String,
"requestDate": String,
"plusFriendId": String,
"senderKey": String,
"masterStatusCode": String,
"content": String,
"isAd": Boolean,
"imageSeq": Integer,
"imageLink": String,
"fileId": String,
"autoSendYn": String,
"statsId": String,
"createDate": String,
"createUser": String
}
],
"totalCount": Integer
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
body | Object | 본문 영역 |
- messages | Object | 메시지 리스트 |
-- requestId | String | 요청 ID |
-- requestDate | String | 요청 날짜 |
-- plusFriendId | String | 플러스 친구 ID |
-- senderKey | String | 전송자 ID |
-- masterStatusCode | String | 대량 발송 상태 코드(WAIT, READY, SENDREADY, SENDWAIT, SENDING, COMPLETE, CANCEL, FAIL) |
-- content | String | 내용 |
-- isAd | Boolean | 광고 여부 |
-- imageSeq | Integer | 이미지 순서 |
-- imageLink | Boolean | 이미지 URL |
-- fileId | String | 첨부 파일 ID |
-- autoSendYn | String | 자동 발송 여부 |
-- statsId | String | 통계 ID |
-- createDate | String | 생성 날짜 |
-- createUser | String | 생성 사용자(콘솔에서 발송 시 사용자 UUID로 저장) |
- totalCount | Integer | 총 개수 |
[URL]
GET /friendtalk/v2.4/appkeys/{appKey}/mass-messages/{requestId}/recipients
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appKey | String | 고유의 앱키 |
requestId | String | 요청 ID |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 설명 |
---|---|---|
X-Secret-Key | String | 고유의 비밀 키 |
이름 | 타입 | 최대 길이 | 필수 | 설명 |
---|---|---|---|---|
requestId | String | - | O | 요청 ID |
startRequestDate | String | - | X | 발송 날짜 시작 |
endRequestDate | String | - | X | 발송 날짜 종료 |
startCreateDate | String | - | X | 등록 날짜 시작 |
endCreateDate | String | - | X | 등록 날짜 종료 |
pageNum | optional, Integer | - | X | 페이지 번호 |
pageSize | optional, Integer | 1000 | X | 검색 수 |
curl -X GET \
'https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appKey}/'"${APP_KEY}"'/mass-messages/recipients?requestId='"${REQUEST_ID}" \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'X-Secret-Key:{secretkey}'
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"body": {
"recipients": [
{
"requestId": String,
"recipientSeq": Integer,
"recipientNo": String,
"requestDate": String,
"receiveDate": String,
"messageStatus": String,
"resultCode": String,
"resultCodeName": String
}
],
"totalCount": Integer
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
body | Object | 본문 영역 |
- recipients | List | 수신자 리스트 |
-- requestId | String | 요청 ID |
-- recipientSeq | Integer | 수신자 시퀀스 번호 |
-- recipientNo | String | 수신 번호 |
-- requestDate | String | 요청 날짜 |
-- receiveDate | String | 수신 날짜 |
-- messageStatus | String | 대량 수신자 발송 상태 코드(READY, COMPLETED, FAILED, CANCEL) |
-- resultCode | String | 수신 결과 코드 |
-- resultCodeName | String | 수신 결과 코드명 |
- totalCount | Integer | 총 개수 |
[URL]
GET /friendtalk/v2.4/appkeys/{appKey}/mass-messages/{requestId}/recipients/{recipientSeq}
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appKey | String | 고유의 앱키 |
requestId | String | 요청 ID |
recipientSeq | String | 수신자 순서 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 설명 |
---|---|---|
X-Secret-Key | String | 고유의 비밀 키 |
이름 | 타입 | 최대 길이 | 필수 | 설명 |
---|---|---|---|---|
requestId | String | - | O | 요청 ID |
startRequestDate | String | - | X | 발송 날짜 시작 |
endRequestDate | String | - | X | 발송 날짜 종료 |
startCreateDate | String | - | X | 등록 날짜 시작 |
endCreateDate | String | - | X | 등록 날짜 종료 |
curl -X GET \
'https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appKey}/'"${APP_KEY}"'/mass-messages/{requestId}/recipients/${RECIPIENT_SEQ}" \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'X-Secret-Key:{secretkey}'
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"body": {
"requestId": String,
"recipientSeq": Integer,
"plusFriendId": String,
"senderKey": String,
"recipientNo": String,
"requestDate": String,
"receiveDate": String,
"content": String,
"messageStatus": String,
"resendStatus": String,
"resendStatusName": String,
"resendRequestId": String,
"resendResultCode": String,
"resultCode": String,
"resultCodeName": String,
"imageSeq": Integer,
"imageLink": String,
"buttons": [
{
"ordering": Integer,
"type": String,
"name": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
"chatExtra": String,
"chatEvent": String,
"bizFormKey": String,
"target": String
}
],
"header": String,
"item": {
"list": [
{
"title": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
}
]
},
"carousel": {
"head": {
"header": String,
"content": String,
"imageUrl": String,
"linkMo": String,
"linkPc": String,
"schemeIos": String,
"schemeAndroid": String,
},
"list": [
{
"header": String,
"message": String,
"additionalContent": String,
"attachment": {
"buttons": [
{
"name": String,
"type": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String,
}
],
"image":{
"imageUrl": String,
"imageLink": String
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"commerce": {
"title": String,
"regularPrice": Integer,
"discountPrice": Integer,
"discountRate": Integer,
"discountFixed": Integer
}
}
}
],
"tail": {
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
}
},
"coupon": {
"title": String,
"description": String,
"linkMo": String,
"linkPc": String,
"schemeAndroid": String,
"schemeIos": String
},
"video": {
"videoUrl": String,
"thumbnailUrl": String
},
"commerce": {
"title": String,
"regularPrice": Integer,
"discountPrice": Integer,
"discountRate": Integer,
"discountFixed": Integer
},
"isAd": Boolean,
"adult": Boolean,
"createDate": String
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
body | Object | 본문 영역 |
- requestId | String | 요청 ID |
- recipientSeq | Integer | 수신자 시퀀스 번호 |
- plusFriendId | String | 플러스 친구 ID |
- senderKey | String | 발신 키(40자) |
- recipientNo | String | 수신 번호 |
- requestDate | String | 요청 날짜 |
- receiveDate | String | 수신 날짜 |
- content | String | 본문 |
- messageStatus | String | 대량 수신자 발송 상태 코드(READY, COMPLETED, FAILED, CANCEL) |
- resendStatus | String | 대체 발송 상태 코드(RSC01, RSC02, RSC03, RSC04, RSC05) ([아래 대체 발송 상태 표] 참고) |
- resendStatusName | String | 대체 발송 상태 코드명 |
- resendRequestId | String | 대체 발송 SMS 요청 ID |
- resendResultCode | String | 대체 발송 결과 코드 SMS 결과 코드 |
- resultCode | String | 수신 결과 코드 |
- resultCodeName | String | 수신 결과 코드명 |
- imageSeq | Integer | 이미지 순서 |
- imageLink | Integer | 이미지 URL |
- buttons | List | 버튼 순서 |
-- ordering | String | 버튼 순서 |
-- type | String | 버튼 종류 - WL: 웹 링크 - AL: 앱 링크 - DS: 배송 조회 - BK: 봇 키워드 - MD: 메시지 전달 - BC: 상담톡 전환 - BT: 봇 전환 - AC: 채널 추가[광고 추가/복합형만] |
-- name | String | 버튼 이름 |
-- linkMo | String | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
-- linkPc | String | PC 웹 링크(WL 타입일 경우 선택 필드) |
-- schemeIos | String | iOS 앱 링크(AL 타입일 경우 필수 필드) |
-- schemeAndroid | String | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
-- chatExtra | String | BC: 상담톡 전환 시 전달할 메타정보 BT: 봇 전환 시 전달할 메타정보 |
-- chatEvent | String | BT: 봇 전환 시 연결할 봇 이벤트명 |
-- bizFormKey | String | BF(비즈니스 폼) 타입 버튼 시 비즈폼 키 |
-- target | String | 웹 링크 버튼일 경우 "target":"out" 속성 추가 시 아웃 링크 기본 인앱 링크로 발송 |
- header | String | 헤더(와이드 아이템 리스트 메시지 타입 사용 시, 필수, 최대 25자) |
- additionalContent | String | 부가 정보(최대 34자), 커머스형에서만 사용 가능 |
- item | Object | 와이드 아이템 |
-- list | List | 와이드 아이템 리스트(최소 3개, 최대 4개) |
--- title | String | 아이템 제목(첫 번째 아이템의 경우 최대 25자, 2~4번째 아이템의 경우 최대 30자) |
--- imageUrl | String | 아이템 이미지 URL |
--- linkMo | String | 모바일 웹 링크 |
--- linkPc | String | PC 웹 링크 |
--- schemeIos | String | iOS 앱 링크 |
--- schemeAndroid | String | 안드로이드 앱 링크 |
- carousel | Object | 캐러셀 |
-- head | String | 캐러셀 인트로 정보 |
--- header | String | 캐러셀 인트로 헤더(최대 20자) |
--- content | String | 캐러셀 인트로 내용(최대 50자) |
--- imageUrl | String | 캐러셀 인트로 이미지 주소 |
--- linkMo | String | 모바일 환경에서 인트로 클릭시 이동할 웹 링크 |
--- linkPc | String | PC 환경에서 인트로 클릭시 이동할 웹 링크 |
--- schemeIos | String | iOS 환경에서 인트로 클릭시 이동할 앱 링크 |
--- schemeAndroid | String | 안드로이드 환경에서 인트로 클릭시 이동할 앱 링크 |
-- list | List | 캐러셀 리스트(최소 2개, 최대 10개) |
--- header | String | 캐러셀 아이템 제목(최대 20자) |
--- message | String | 캐러셀 아이템 메시지(최대 180자) |
--- additionalContent | String | 부가 정보(최대 34자) |
--- attachment | Object | 캐러셀 아이템 이미지, 버튼 정보 |
---- buttons | List | 버튼 리스트(최대 2개) |
----- name | String | 버튼 이름(버튼이 있는 경우 필수, 최대 8자) |
----- type | String | 버튼 타입(WL: 웹 링크, AL: 앱 링크, BK: 봇 키워드, MD: 메시지 전달, BF: 비즈니스폼) |
----- linkMo | String | 모바일 웹 링크(WL 타입일 경우 필수 필드) |
----- linkPc | String | PC 웹 링크(WL 타입일 경우 선택 필드) |
----- schemeIos | String | iOS 앱 링크(AL 타입일 경우 필수 필드) |
----- schemeAndroid | String | 안드로이드 앱 링크(AL 타입일 경우 필수 필드) |
---- image | Object | 이미지 |
----- imageUrl | String | 이미지 URL |
----- imageLink | String | 이미지 링크 |
---- coupon | Object | 쿠폰 |
----- title | String | 쿠폰 title |
----- description | String | 쿠폰 상세 설명 |
----- linkMo | String | 모바일 웹 링크 |
----- linkPc | String | PC 웹 링크 |
----- schemeIos | String | iOS 앱 링크 |
----- schemeAndroid | String | 안드로이드 앱 링크 |
---- commerce | Object | 커머스 |
----- title | String | 상품 제목(최대 30자) |
----- regularPrice | Integer | 정상가격(0 ~ 99,999,999) |
----- discountPrice | Integer | 할인가격(0 ~ 99,999,999) |
----- discountRate | Integer | 할인율(0 ~ 100), 할인가격 존재시 할인율 |
----- discountFixed | Integer | 정액할인가격(0 ~ 999,999) |
-- tail | Object | 더보기 버튼 정보 |
--- linkMo | String | 모바일 웹 링크 |
--- linkPc | String | PC 웹 링크 |
--- schemeIos | String | iOS 앱 링크 |
--- schemeAndroid | String | 안드로이드 앱 링크 |
- coupon | Object | 쿠폰 |
-- title | String | 쿠폰 title |
-- description | String | 쿠폰 상세 설명 |
-- linkMo | String | 모바일 웹 링크 |
-- linkPc | String | PC 웹 링크 |
-- schemeIos | String | iOS 앱 링크 |
-- schemeAndroid | String | 안드로이드 앱 링크 |
- video | Object | 비디오 |
-- videoUrl | String | 카카오TV 동영상 URL |
-- thumbnailUrl | String | 동영상 썸네일용 이미지 URL |
- commerce | Object | 커머스 |
-- title | String | 상품 제목(최대 30자) |
-- regularPrice | Integer | 정상가격(0 ~ 99,999,999) |
-- discountPrice | Integer | 할인가격(0 ~ 99,999,999) |
-- discountRate | Integer | 할인율(0 ~ 100), 할인가격 존재시 할인율 |
-- discountFixed | Integer | 정액할인가격(0 ~ 999,999) |
- isAd | Boolean | 광고 여부 |
- adult | Boolean | 성인용 메시지 여부 |
- createDate | String | 생성 날짜 |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/images
Content-Type: multipart/form-data
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
image | File | O | 이미지 |
wide | boolean | X | 와이드 이미지 여부(Default: false) |
[예시]
curl -X POST -H "Content-Type: multipart/form-data" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/images" -F "image=@friend-ricecake02.jpeg"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"image": {
"imageSeq": Integer,
"imageUrl": String,
"imageName": String
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
image | Object | 본문 영역 |
- imageSeq | Integer | 이미지 번호(친구톡 메시지 발송 시 사용) |
- imageUrl | String | 이미지 URL |
- imageName | String | 이미지명(업로드한 파일명) |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/wide-itemlist/images
Content-Type: multipart/form-data
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
image | File | O | 이미지 |
[예시]
curl -X POST -H "Content-Type: multipart/form-data" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/wide-itemlist/images" -F "image=@friend-ricecake02.jpeg"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"image": {
"imageSeq": Integer,
"imageUrl": String,
"imageName": String
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
image | Object | 본문 영역 |
- imageSeq | Integer | 이미지 번호(친구톡 메시지 발송 시 사용) |
- imageUrl | String | 이미지 URL |
- imageName | String | 이미지명(업로드한 파일명) |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/carousel/images
Content-Type: multipart/form-data
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
image | File | O | 이미지 |
[예시]
curl -X POST -H "Content-Type: multipart/form-data" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/carousel/images" -F "image=@friend-ricecake02.jpeg"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"image": {
"imageSeq": Integer,
"imageUrl": String,
"imageName": String
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
image | Object | 본문 영역 |
- imageSeq | Integer | 이미지 번호(친구톡 메시지 발송 시 사용) |
- imageUrl | String | 이미지 URL |
- imageName | String | 이미지명(업로드한 파일명) |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/carousel/commerce-images
Content-Type: multipart/form-data
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
image | File | O | 이미지 |
[예시]
curl -X POST -H "Content-Type: multipart/form-data" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/carousel/images/intro" -F "image=@friend-ricecake02.jpeg"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"image": {
"imageSeq": Integer,
"imageUrl": String,
"imageName": String
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
image | Object | 본문 영역 |
- imageSeq | Integer | 이미지 번호(친구톡 메시지 발송 시 사용) |
- imageUrl | String | 이미지 URL |
- imageName | String | 이미지명(업로드한 파일명) |
[URL]
GET /friendtalk/v2.4/appkeys/{appkey}/images
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Query parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
imageTypes | String | X | - IMAGE: 일반 이미지 - WIDE_IMAGE: 와이드 이미지 - WIDE_ITEMLIST_IMAGE: 와이드 아이템 리스트 이미지 - CAROUSEL_IMAGE: 캐러셀 이미지 IMAGE, WIDE_IMAGE(default) |
pageNum | Integer | X | 페이지 번호(기본: 1) |
pageSize | Integer | X | 조회 건수(기본: 15) |
[예시]
curl -X GET -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/images?pageNum=1&pageSize=15"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"imagesResponse": {
"images": [
{
"imageSeq": Integer,
"imageUrl": String,
"imageName": String,
"imageType": String,
"createUser": String
}
],
"totalCount": Integer
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
imagesResponse | Object | 본문 영역 |
- image | Object | 본문 영역 |
-- imageSeq | Integer | 이미지 번호(친구톡 메시지 발송 시 사용) |
-- imageUrl | String | 이미지 URL |
-- imageName | String | 이미지명(업로드한 파일명) |
-- createUser | String | 생성자 |
-- imageType | String | - IMAGE: 일반 이미지 - WIDE_IMAGE: 와이드 이미지 - WIDE_ITEMLIST_IMAGE: 와이드 아이템 리스트 이미지 - CAROUSEL_IMAGE: 캐러셀 이미지 |
- totalCount | Integer | 총 개수 |
[URL]
DELETE /friendtalk/v2.4/appkeys/{appkey}/images
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Query parameter]
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
imageSeq | String | O | 이미지 번호 |
[예시]
curl -X DELETE -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" "https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/images?imageSeq=1,2,3"
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
}
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/senders/{senderKey}/biz-form
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
senderKey | String | 발신 키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request body]
{
"bizFormId": Integer
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
bizFormId | Integer | O | 비즈니스폼 아이디 |
[예시]
curl -X POST -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/senders/{senderKey}/biz-form -d '{"bizFormId": 1}
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
},
"bizFormKey": String
}
이름 | 타입 | 설명 |
---|---|---|
header | Object | 헤더 영역 |
- resultCode | Integer | 결과 코드 |
- resultMessage | String | 결과 메시지 |
- isSuccessful | Boolean | 성공 여부 |
bizFormKey | String | 비즈니스폼 키 |
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/failback/appkey
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request body]
{
"resendAppKey": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
resendAppKey | String | O | 대체 발송으로 설정할 SMS 서비스 앱키 |
[예시]
curl -X POST -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/failback/appkey -d '{"resendAppKey": "smsAppKey"}
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
}
}
[URL]
POST /friendtalk/v2.4/appkeys/{appkey}/failback
Content-Type: application/json;charset=UTF-8
[Path parameter]
이름 | 타입 | 설명 |
---|---|---|
appkey | String | 고유의 앱키 |
[Header]
{
"X-Secret-Key": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
X-Secret-Key | String | O | 콘솔에서 생성할 수 있습니다. |
[Request body]
{
"senderKey": String,
"isResend": Boolean,
"resendSendNo": String,
"resendUnsubscribeNo": String
}
이름 | 타입 | 필수 | 설명 |
---|---|---|---|
senderKey | String | O | 발신 키 |
isResend | Boolean | O | 발송 실패 시 문자 대체 발송 여부 콘솔에서 대체 발송 설정 시, default로 재발송됩니다. |
resendSendNo | String | O | 대체 발송 발신 번호 (SMS 상품에 등록된 발신 번호가 아닐 경우 대체 발송을 실패할 수 있습니다.) |
resendUnsubscribeNo | String | X | 대체 발송 080 수신거부번호 (SMS 상품에 등록된 080수신거부번호가 아닐 경우, 대체 발송을 실패할 수 있습니다.) |
[예시]
curl -X POST -H "Content-Type: application/json;charset=UTF-8" -H "X-Secret-Key:{secretkey}" https://api-alimtalk.cloud.toast.com/friendtalk/v2.4/appkeys/{appkey}/failback/appkey -d '{"senderKey": "9e0afe2c12aaaaaaaaaa7520052880b555f1a60a","isResend": true,"resendSendNo": "01012341234", "resendUnsubscribeNo": "0801234567" }
{
"header": {
"resultCode": Integer,
"resultMessage": String,
"isSuccessful": boolean
}
}