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 チャットボットユーザーの固有の ID
  • 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 チャットボットユーザーの固有の ID
  • リクエスト時に設定した値と同じ
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 会話発話 ID
conversation.types Array Conditional 会話タイプ
slotNormalizer Object<Array> Optional ユーザーの質問と一致するシステムエンティティ(Entity)
  • DateTimePeopleName
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)の詳細情報
data.data.action.data.utteranceId Long Required 発話 ID
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"
}