이미지형(IMAGE) 템플릿의 본문 이미지와, 아이템리스트형(ITEM_LIST)의 하이라이트 썸네일을 올려요. 규격이 서로 달라서 엔드포인트가 나뉘어 있어요. 카카오 사본은 카카오에 올리기 직전에 서버가 알아서 만들어요.
두 엔드포인트의 차이
| 구분 | 본문 이미지 | 하이라이트 썸네일 |
|---|---|---|
| 경로 | /alimtalk/templates/image |
/alimtalk/templates/highlight_image |
| 쓰는 곳 | storage_image_url |
item_highlight.storage_image_url |
| 형식 | jpg · png | jpg · png |
| 용량 | 500KB 이하 | 500KB 이하 |
| 가로 | 500px 이상 | 108px 이상 |
| 비율 | 2:1 | 1:1 |
엔드포인트를 바꿔 쓰면 거부돼요
썸네일을 본문 이미지 엔드포인트로 올리면 비율(2:1) 검사에 걸려 505로 거부돼요. 규격을 업로드 전에 서버가 검사하기 때문에, 어긋나면 storage 에 올라가지도 않아요.
1본문 이미지 업로드
요청 파라미터
multipart/form-data 로 보내요.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
image |
File | 필수 | jpg 또는 png 파일 |
replace_url |
String | 선택 | 교체할 기존 이미지 URL. 업로드가 성공한 뒤에만 지워요 |
코드 예제
curl -X POST "https://message.bootapi.com/alimtalk/templates/image" \
-H "Authorization: Basic {base64(client_key:secret_key)}" \
-F "image=@/path/to/banner.png"bashrequire 'bootpay'
commerce = BootpayStore::RestClient.new(client_key: 'your-commerce-client-key', secret_key: 'your-commerce-secret-key')
response = commerce.alimtalk_template_image(image: '/path/to/banner.png')
puts response.dataruby파일은 경로 문자열·IO·HTTP::FormData::File 을 모두 받아요.
응답
{
"image_url": "https://storage.bootpay.co.kr/alimtalk/2026/08/27/banner.png"
}json돌려받은 image_url 을 템플릿 생성·수정의 storage_image_url 로 넘겨요.
2하이라이트 썸네일 업로드
아이템리스트형의 하이라이트 영역에 들어가는 작은 정사각형 이미지예요.
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
image |
File | 필수 | jpg 또는 png 파일 (가로 108px 이상, 1:1) |
replace_url |
String | 선택 | 교체할 기존 이미지 URL |
코드 예제
curl -X POST "https://message.bootapi.com/alimtalk/templates/highlight_image" \
-H "Authorization: Basic {base64(client_key:secret_key)}" \
-F "image=@/path/to/thumb.png"bashresponse = commerce.alimtalk_template_highlight_image(image: '/path/to/thumb.png')
puts response.dataruby응답
{
"image_url": "https://storage.bootpay.co.kr/alimtalk/2026/08/27/thumb.png"
}json이 값은 item_highlight.storage_image_url 로 넘겨요.
썸네일을 붙이면 글자 한도가 줄어요
하이라이트에 썸네일이 있으면 타이틀 30 → 21자, 설명 19 → 13자로 줄어들어요. 이미지를 넣기로 했다면 문구를 먼저 줄여 두는 편이 좋아요.
이미지 지우기
템플릿 수정에서 storage_image_url 을 빈 값으로 보내면 이미지 삭제로 처리되고 카카오에도 반영돼요.
에러 코드
| 코드 | error_code | 메시지 | 대처 방법 |
|---|---|---|---|
500 |
STORAGE_NOT_IMAGE_FILE |
이미지 형식 오류 | jpg 또는 png 만 올릴 수 있어요 |
501 |
STORAGE_IMAGE_BLANK |
이미지 누락 | image 필드에 파일을 담았는지 확인해요 |
505 |
STORAGE_IMAGE_INVALID_SIZE |
규격 위반 | 용량 500KB·가로폭·비율 조건을 확인해요 |
508 |
STORAGE_IMAGE_UPLOAD_FAILED |
storage 업로드 실패 | 잠시 후 다시 시도해요 |
