카카오 JavaScript SDK의 Share List 템플릿을 사용 중인데 contents 개수 관련 에러가 발생해서 이유를 알고 싶습니다

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.


에러 메시지는 다음과 같습니다.

Illegal argument for “contents” in Share: size of contents should be more than 1 and up to 3

현재 웹 페이지에서 사용자가 textarea에 여러 줄로 입력한 항목을 줄 단위로 나눠서 contents 배열로 만들어 List 타입으로 공유하고 있습니다.

코드는 대략 이런 구조입니다.

let items = textareaValue
  .split("\n")
  .map(v => v.trim())
  .filter(v => v);

const contents = items.map(text => ({
  title: text,
  description: "",
  imageUrl: "https://example.com/school.png",
  link: {
    mobileWebUrl: "https://example.com",
    webUrl: "https://example.com"
  }
}));

Kakao.Share.sendDefault({
  objectType: "list",
  headerTitle: "숙제 안내",
  headerLink: {
    mobileWebUrl: "https://example.com",
    webUrl: "https://example.com"
  },
  contents: contents
});

문제는 입력 항목이

  • 1개일 때도 에러가 나고

  • 4개 이상일 때도 같은 에러가 발생한다는 점입니다.

에러 메시지로 보면 contents 크기가 1 초과, 3 이하(즉 2~3개만 허용) 인 것처럼 보이는데, 카카오 공식 문서에서는 단순히 List 템플릿 구조만 설명되어 있고, 이 개수 제한이 왜 존재하는지에 대한 설명은 찾지 못했습니다.

궁금한 점은 다음입니다.

  1. List 템플릿에서 contents를 2~3개로 제한한 이유가 UI 구조 때문인지, 내부 정책 때문인지 알고 싶습니다.

  2. 항목이 1개일 경우에는 List 대신 Feed 템플릿을 사용하는 것이 공식적으로 권장되는 방식인가요?

  3. 4개 이상 데이터를 보여줘야 하는 경우, 여러 메시지로 나누는 것 외에 다른 권장 패턴이 있는지도 궁금합니다.

단순 사용법이 아니라 이 제한이 생긴 설계 배경이나 의도를 알고 싶습니다. 관련 문서나 가이드가 있다면 공유해 주시면 감사하겠습니다.

참고 정보

카카오톡 앱-채널 연결 관리 FAQ

[@tim.l @woody.ho]

@tambot 정확한 답변 부탁 드립니다~

안녕하세요.

카카오톡 공유 말풍선의 UI는 카카오톡의 표준에 따라 협의로 결정되며, 카카오톡 이용자의 사용성을 해지치 않는 범위에서 설계됩니다.

참고 부탁드려요.

그러면 2개 이상 3개이하로 계속 고정 되나요?

네, 메시지 내용을 코드에서 설정하는 sendDefault (기본 템플릿)은 해당 메시지와 같이 제약 조건 하에 사용하셔야하고

카카오디벨로퍼스 메시지 템플릿 도구에서 메시지를 미리 구성하고 템플릿 ID로 발송하는 sendCustom (사용자정의템플릿) 은 제한이 조금더 완화되어 있으니 검토 해보시면 좋을 것 같습니다.