getPersistentMenu

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

챗봇의 고정 메뉴(Persistent Menu) 목록을 조회합니다.

참고

챗봇 답변의 응답 컴포넌트는 다음 3가지 형태의 컴포넌트를 제공합니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
POST CLOVA Chatbot 빌더에서 생성된 API Gateway의 고유 InvokeURL

요청 헤더

CLOVA Chatbot Custom API에서 공통으로 사용하는 헤더에 대한 정보는 CLOVA Chatbot Custom API 공통 헤더를 참조해 주십시오.

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

  • 콘솔에서 고정 메뉴(Persistent Menu)가 설정된 경우에 로컬 캐시가 존재하지 않아도 필요한 경우 PersistentMenu 컴포넌트를 요청하면 persistMenu 필드에 응답합니다.
필드 타입 필수 여부 설명
version String Optional 챗봇 버전
  • v1 | v2 (기본값)
    • 미입력 시 v1 설정
userId String Required 챗봇 사용자 고유 아이디
  • 최대 256자 이내 임의 입력
userIp String Optional 사용자 IP 주소
timestamp Long Required 임의의 타임 스탬프 값(Timestamp)
bubbles Array Required 빈 배열(Array) 값으로 설정
  • <예시> []
event String Required 이벤트 값
  • getPersistentMenu로 설정

요청 예시

요청 예시는 다음과 같습니다.

{
"version": "v2",
"userId": "{userId}",
"userIp": "{userIp}",
"timestamp": 12345678,
"bubbles": [],
"event": "getPersistentMenu"
}

응답

응답 형식을 설명합니다.

응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
version String Optional 챗봇 버전
userId String Required 챗봇 사용자 고유 아이디
  • 요청 시 설정한 값과 동일
timestamp Long Required 타임 스탬프 값(Timestamp)
bubbles Array Optional 빈 배열(Array) 값
  • <예시> []
entities Array Optional 사용자의 질의에 일치된 챗봇 엔티티 (Entity) 분석 결과
persistentMenu Object Optional 고정 메뉴(Persistent Menu) 구성 정보
persistentMenu.type String Conditional 고정 메뉴 유형
persistentMenu.title String Conditional 고정 메뉴 이름
persistentMenu.data Object Conditional 고정 메뉴 구성 정보
persistentMenu.data.contentTable Array Conditional contentTable 상세 정보
keywords Array Optional keywords 상세 정보
  • exactMatch | contain
    • exactMatch: 사용자 입력 값과 키워드가 완전 일치
    • contain: 사용자 입력 값에 키워드가 포함
conversation Object Optional 대화 정보
conversation.scenarioName String Conditional 시나리오 이름
conversation.chatUtteranceSetId String Conditional 대화 발화 아이디
conversation.types Array Conditional 대화 유형
slotNormalizer Object<Array> Optional 사용자의 질의에 일치된 시스템 엔티티 (Entity)
  • Date, Time, People, Name
normalizer String Optional 사용자의 질의에 일치된 시스템 엔티티 (Entity)
event String Required 이벤트 값

contentTable

persistentMenu.data.contentTable에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
rowSpan Integer Required 표의 셀이 차지하는(Span) 행의 수
colSpan Integer Required 표의 셀이 차지하는(Span) 열의 수
data Object Required 컴포넌트 구성 정보
data.type String Required 컴포넌트 유형
data.title String Optional 컴포넌트 이름
data.subTitle String Optional 하위 컴포넌트 이름
data.data Object Optional 하위 컴포넌트 구성 정보
data.data.type String Required 하위 컴포넌트 유형
data.data.iconUrl String Optional 아이콘 URL 주소
data.data.action Object Optional 컴포넌트 액션(Action) 정보
data.data.action.type String Conditional 컴포넌트 액션(Action) 유형
data.data.action.data Object Conditional 컴포넌트 액션(Action) 상세 정보
  • 각 액션 유형에 따라 세부 내용이 상이하므로 자세한 설명은 Action 컴포넌트 참조
data.data.action.data.utteranceId Long Required 발화 아이디
data.data.action.data.text String Required 채팅창에 사용자의 입력으로 표시되는 텍스트
data.data.action.data.postback String Required 챗봇으로 보낼 포스트백 텍스트

keywords

keywords에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
keyword String Conditional 키워드
group String Conditional 키워드 그룹
type String Conditional 키워드 종류

응답 상태 코드

CLOVA Chatbot Custom API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 CLOVA Chatbot Custom API 공통 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

{
  "version": "v2",
  "userId": "{userId}",
  "timestamp": 1665041597003,
  "bubbles": [],
  "persistentMenu": {
    "type": "template",
    "title": "3by2",
    "data": {
      "contentTable": [
        [
          {
            "rowSpan": 1,
            "colSpan": 1,
            "data": {
              "type": "button",
              "title": "",
              "subTitle": "",
              "data": {
                "type": "imageButton",
                "iconUrl": "https://clovachatbot.ncloud.com/i48103278ci6f6-9f51-4d08-a947-1c8acc992629",
                "action": {
                  "type": "link",
                  "data": {
                    "url": "https://ncloud.com",
                    "mobileUrl": "https://ncloud.com"
                  }
                }
              }
            }
          }
        ]
      ]
    }
  },
  "keywords": [],
  "conversation": {
    "scenarioName": null,
    "chatUtteranceSetId": null,
    "types": []
  },
  "slotNormalizer": {},
  "normalizer": "",
  "event": "send"
}