メッセージ・モデル

SDKは、すべてのトラフィックに対して一貫性のある型付きメッセージ・モデルを使用します。エンベロープ・タイプとペイロード・タイプを理解することは、ヘッドレス統合、委任者、カスタム・レンダリングおよびテストに重要です。すべての会話項目は、標準エンベロープを含むメッセージです。

{
  "messagePayload": { /* see types below */ },
  "userId": "guest"
}
  • messagePayload.type
    具体的なペイロードの形状を決定します。
  • ユーザー・メッセージはクライアントによって開始され、レスポンス・メッセージはスキルまたはエージェントから発信されます。

ベース・タイプ

これらは、ユーザーからスキルに、およびその逆方向に送信されるすべてのメッセージで使用されるベース・タイプです。これらはすべてのメッセージの構成要素です。
  • アクション: バリアントには、callclientlocationpopuppostbacksharesubmitFormurlが含まれます。
  • 添付ファイル: audiofile、imagevideo
  • カード: title: description、 imageUrlactions
  • 場所: latitudelongitudeoptional title/url
  • 音声: textlongTextsoundUrl
  • フィールド: 読取り専用(linktextmediaactionおよび編集可能(textInputnumberInputdatePickertimePicker singleSelectmultiSelecttoggle))
  • SelectFieldOption: label, value
  • TableHeading
  • TableRow
  • Form
  • FormRow
  • FormColumn
  • PaginationInfo
  • EventContextProperties

ユーザー・メッセージのペイロード・タイプ

  • テキスト
    { "type": "text", "text": "Order Pizza" }
    
  • 添付
  • {
      "type": "attachment",
      "attachment": { "type": "image", "URL": "https://..." }
    }
    
  • ロケーション
    { "type": "location", "location": { "latitude": 45.9, "longitude": 132.6 } }
    
  • ポストバック
    {
      "type": "postback",
      "text": "Small",
      "postback": {
        "variables": { "pizza": "Small" },
        "system.botId": "....",
        "system.state": "orderPizza"
      }
    }
    
  • インバウンド・イベント
    {
      "type": "inboundEvent",
      "eventType": "com.pizzastore.pizza.orderserved",
      "eventVersion": "1.0",
      "eventData": { "size": "Medium", "type": "Cheese" },
      "contextProperties": { "id": "6ce23f...", "source": "pizza/service" }
    }
    
  • フォーム提出
    {
      "type": "formSubmission",
      "submittedFields": { "Subject": "Expense", "Amount": 6 },
      "partialSubmitField": "Attendees",
      "postback": { "system.state": "editFormMapVar" }
    }
    

レスポンス・メッセージ

スキル/エージェントからのレスポンス・ペイロードは次のとおりです。
  • テキスト
    { "type": "text", "text": "What do you want to do?" }
    
  • 添付
    {
      "type": "attachment",
      "attachment": { "type": "file", "url": "https://..." }
    }
    
  • カード
    {
      "type": "card",
      "layout": "horizontal",
      "cards": [{ "title": "Hawaiian Pizza", "actions": [/*...*/] }]
    }
    
  • コマンド
    { "type": "command", "command": "someCommand", "properties": { "k": "v" } }
    
  • エラー
    { "type": "error", "errorMessage": "Details...", "error": "..." }
    
  • アプリケーション・コンテキストの実行コマンド
    {
      "type": "executeApplicationActionCommand",
      "actionType": "navigate",
      "command": "executeApplicationAction",
      "context": "appName",
      "properties": { "route": "/home" }
    }
    
  • フィードバック(星)
    {
      "type": "text",
      "text": "How would you like to rate us?",
      "channelExtensions": { "displayType": "stars" },
      "actions": [/* star postbacks */]
    }
    
  • ロケーション
    { "type": "location", "location": { "latitude": 37.53, "longitude": -122.26 } }
    
  • アウトバウンド・イベント
    {
      "type": "outboundEvent",
      "eventType": "com.pizzastore.pizza.ordercreated",
      "eventVersion": "1.0",
      "eventData": { "size": "Medium" }
    }
    
  • 未処理
    { "type": "raw", "payload": { /* channel specific */ } }
    
  • セッション終了
    { "type": "sessionClosed" }
    
  • テキスト・ストリーム
    {
      "type": "texStream",
      "streamId": "123",
      "streamState": "running",
      "text": "partial chunk",
      "aggregateText": "accumulated text so far"
    }
    
  • 編集フォームでは、channelExtensionsを介してreplaceMessageがサポートされます。

アクション

アクションは、ユーザーが選択できる内容を表します。
名前 説明 タイプ 必須?
type アクション・タイプ string はい
label アクションの説明的なラベル。 string labelまたはimageUrlを少なくとも1つ含める必要があります。
imageUrl アクションのイメージ string 少なくとも1つのlabelまたはimageUrlプロパティを含める必要があります。
style ボタンのレンダリング・スタイル "primary", "danger", "default" いいえ
displayType アクション要素のタイプのレンダリング(ボタン、リンクまたはアイコン) "button", "link", "icon" いいえ
channelExtensions アクションに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

CallAction

ユーザーのかわりに、指定された電話番号を呼び出すようクライアントにリクエストします。
名前 説明 タイプ 必須?
type アクション・タイプ "call" はい
phoneNumber 呼び出す電話番号 string はい
例:
{
    "type": "call",
    "label": "Call Support",
    "imageUrl": "http://example.com.ar/files/2016/05/cuidado.jpg",
    "phoneNumber": "18005555555"
}

LocationAction

ユーザーのロケーションを要求するようクライアントにリクエストします。
名前 説明 タイプ 必須?
type アクション・タイプ "location" はい
例:
{
    "type": "location",
    "label": "Share location",
    "imageUrl": "http://images.example.com/location-clipart-location-pin-clipart-1.jpg"
}

PopupAction

このアクションは、ユーザーが要素に対してクリック・アクションを実行した後にポップアップ・ウィンドウを開きます。PopupActionは、独自のプロパティとともにActionプロパティを使用します。
名前 説明 タイプ 必須?
type アクション・タイプ "popup" はい
popupContent ポップアップ・ウィンドウ内に表示されるコンテンツ。 メッセージ・ペイロード(次のJSONの例を参照) はい
{
    "type": "popup",
    "label": "Give Feedback",
    "popupContent": {
        "formRows": [
            {
                "columns": [
                    {
                        "width": "stretch",
                        "fields": [
                            {
                                "displayType": "text",
                                "label": "What was the issue with this response?"
                            },
                            {
                                "displayType": "multiSelect",
                                "options": [
                                    {
                                        "label": "Inaccurate",
                                        "value": "inaccurate"
                                    },
                                    {
                                        "label": "Inappropriate",
                                        "value": "inappropriate"
                                    }
                                ],
                                "id": "system_feedback_reasons",
                                "required": true
                            },
                            {
                                "displayType": "textInput",
                                "id": "system_feedback_comments",
                                "placeholder": "Additional feedback"
                            }
                        ]
                    }
                ]
            },
            {
                "columns": [
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "action": "cancel",
                                    },
                                    "label": "Cancel",
                                    "type": "postback"
                                },
                            }
                        ]
                    },
                    {
                        "fields": [
                            {
                                "displayType": "action",
                                "action": {
                                    "postback": {
                                        "rating": "negative",
                                        "system.state": "invokeLLM"
                                    },
                                    "label": "Submit Feedback",
                                    "type": "submitForm"
                                },
                            }
                        ]
                    }
                ]
            }
        ],
        "type": "editForm",
        "title": "Give your feedback",
        "formColumns": 1,
    }
}

PostbackAction

ユーザーがアクションを選択すると、事前定義済のポストバックがスキルに送信されます。
名前 説明 タイプ 必須?
type アクション・タイプ "postback" はい
postback ユーザーがアクションを選択すると返されるポストバック。 stringまたはJSONオブジェクト はい
例:
{
    "type": "postback",
    "label": "Large Pizza",
    "imageUrl": "https://example.com/images/gallery/locations/11.jpg",
    "postback": {
        "state": "askSize",
        "action": "getCrust"
    }
}

ShareAction

ユーザーの共有ダイアログを開くようクライアントにリクエストします。
名前 説明 タイプ 必須?
type アクション・タイプ "share" はい

SubmitFormAction

このアクションは、入力フォームがクライアント側の検証を満たしたときにスキルに送信するために使用されます。Actionプロパティーに次のプロパティーを追加します。
名前 説明 タイプ 必須?
type アクション・タイプ "submitForm" はい
postback ポストバック・ペイロード。ナビゲーションをトリガーするアクション・プロファイルが含まれる場合があります。このプロパティーの値は、FormSubmissionMessagePayloadに設定するようにしてください。 JSONObject いいえ
JSONの例
{
    "type": "submitForm",
    "label": "Submit",
    "postback": {
        "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
        "system.flow": "ExpenseFlow",
        "system.state": "editFormMapVar"
    }
}

urlAction

新しいタブまたはアプリ内ブラウザでWebサイトを開くようクライアントにリクエストします。

名前 説明 タイプ 必須?
type アクション・タイプ "call" はい
url 表示されるWebサイトのURL。 string はい

添付

ユーザーから送信されたアタッチメントを表します。
名前 説明 タイプ 必須?
title アタッチメント・タイトル string いいえ
type アタッチメント・タイプ string (有効な値: audio、file、image、video) はい
url アタッチメントのダウンロードURL string はい
例:
{
    "title": "Oracle Open World Promotion",
    "type": "image",
    "url": "https://www.oracle.com/us/assets/hp07-oow17-promo-02-3737849.jpg"
}

カード

メッセージ・ペイロード内の1つのカードを表します。
名前 説明 タイプ 必須?
title カードの最初の行として表示されるカードのタイトル。 string はい
description カードの説明 string いいえ
imageUrl 表示されるイメージのURL。 string いいえ
URL タップで開かれるWebサイトのURL。 string いいえ
actions テキストに関連するアクションの配列 array いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

ロケーション

ロケーション・オブジェクトを表します。
名前 説明 タイプ 必須?
title ロケーション・タイトル string いいえ
url マップにロケーションを表示するためのURL string いいえ
latitude GPS座標の経度の値 double はい
longitude GPS座標の緯度の値 double はい
例:
{
    "title": "Oracle Headquarters",
    "url": "https://www.google.com.au/maps/place/37°31'47.3%22N+122°15'57.6%22W",
    "longitude": -122.265987,
    "latitude": 37.529818
}

音声

メッセージ内の音声情報を表します。
名前 説明 タイプ 必須?
text TTSの要約テキスト string プロパティーの少なくとも1つを渡す必要があります
longText TTSの詳細テキスト string プロパティーの少なくとも1つを渡す必要があります
soundUrl 再生するサウンドファイルのURL string プロパティーの少なくとも1つを渡す必要があります
.

フィールド

キーと値のペアとして提供される、TableFormおよびTable-Formオブジェクト内の表セルまたはフォーム・フィールドのアトミック情報を表します。
名前 説明 タイプ 必須?
displayType フィールド・タイプ 文字列 はい
label フィールド・キー 文字列 はい
marginTop 同じ列内のこのフィールドと前のフィールドの間の垂直方向のスペースの量 "none", "medium","large" いいえ
labelFontSize フィールド・ラベルに使用するフォント・サイズ "small", "medium", "large" いいえ
labelFontWeight セル内のラベルの位置 "light", "medium", "bold" いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

PaginationInfo

TableFormおよびTable-Formオブジェクト内の結果のページング情報を表します。

名前 説明 タイプ 必須?
totalCount 合計結果数 数値 はい
rangeSize 1ページ当たりの結果の範囲サイズ 数値 はい
status ページング・ステータス・メッセージ 文字列 はい
currentRangeSize 結果のキュレント範囲のサイズ 数値 はい
rangeStart 結果の現在の範囲の開始オフセット 数値 はい
nextRangeSize 結果の次の範囲のサイズ 数値 はい
hasPrevious 前の結果セットがあるかどうかを示します boolean はい
hasNext 次の結果セットがあるかどうかを示します boolean はい

読取り専用フィールド

読取り専用フィールドを表します。すべての読取り専用フィールドは、フィールド・プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
value フィールドの値。 string はい
width 表レイアウトでフィールドが占める合計使用可能幅の推奨パーセント。 数値 いいえ
alignment 表の列内の値の位置合せ。デフォルトの配置はrightです。 "left""center"および"right" いいえ
onHoverPopupContent ユーザーがフィールドにマウス・ポインタを重ねると表示されるコンテンツ。 メッセージ・ペイロード いいえ

テキスト・フィールド

テキスト・フィールドは、読取り専用フィールド・プロパティをすべて継承します。
名前 説明 タイプ 必須?
displayType 要素タイプです。 text (文字列値) はい
truncateAt 長いテキストが切り捨てられる位置と、省略記号(値が切り捨てられたことを示す)が表示される位置。 数値 いいえ
fontSize フィールド値に使用されるフォント・サイズ "small", "medium", "large" いいえ
fontWeight フィールド値に使用されるフォントの太さ "light", "medium", "bold" いいえ
.

リンク・フィールド

リンク・フィールドは、読取り専用フィールド・プロパティをすべて継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "link" はい
linkLabel ハイパーリンクに使用されるラベル string いいえ
imageUrl クリック時にリンクを開くイメージのURL。 string いいえ

メディア・フィールド

メディア・フィールドは、読取り専用フィールド・プロパティをすべて継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "メディア" はい
mediaType フィールド・メディア・タイプ "video", "audio", "image" はい

「アクション」フィールド

アクション・フィールドは、すべての読取り専用フィールド・プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "action" はい
action ユーザーがアクションボタンをクリックしたときに実行されるアクション。 アクション はい

編集可能フィールド

編集可能なフィールドを表します。すべての編集可能フィールドは、フィールド・プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
id フィールドID string はい
placeholder ユーザーから期待される入力の摘要。このテキストは、ユーザーがまだ選択を行っていないか、または値を入力していない場合に表示されます。 string いいえ
required フォームの送信にこの入力が必要かどうか boolean いいえ
clientErrorMessage クライアント側の検証エラーが発生したときにフィールドの下に表示されるフィールド・レベルのエラー・メッセージ。指定しない場合、SDKはデフォルトでeditFieldErrorMessageに設定されます。 string いいえ
serverErrorMessage サーバー側検証エラーが発生したときにフィールドの下に表示されるフィールド・レベルのエラー・メッセージ。このエラー・メッセージは、スキルによって送信されたペイロードに含まれている必要があります。 string いいえ
autoSubmit trueに設定すると、ユーザーがフィールドの値を入力すると、フォームは自動発行されます。   いいえ

単一選択

単一選択フィールドは、すべての「編集可能フィールド」プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "singleSelect" はい
defaultValue デフォルトで選択されています プリミティブ・データ型(文字列、数値、ブールなど) いいえ
options ユーザーに表示されるオプションの配列。 selectFieldOption配列 はい
layoutStyle 単一選択オプションのレンダリングに使用するレイアウト・スタイル。デフォルトのレイアウトはlistです。 "list", "radioGroup" いいえ
layoutDirection layoutStyleradioGroupに設定されている場合のラジオ・ボタンのレイアウト方向(水平または垂直)。デフォルトでは、レイアウト方向はvertical,に設定されていますが、 horizontalとして設定できます。 文字列 いいえ

複数選択

複数選択フィールドは、「編集可能フィールド」プロパティをすべて継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "multiSelect" はい
defaultValue デフォルトで選択されています プリミティブ・データ型(文字列、数値、ブールなど)の配列<オブジェクト> いいえ
options ユーザーに表示されるオプションの配列 selectFieldOption配列 はい
layoutStyle オプションのレンダリングに使用されるレイアウト・スタイル。 "list", "checkboxes" いいえ
layoutDirection layoutStylecheckboxesに設定されている場合、チェック・ボックスのレイアウト方向(水平または垂直)。デフォルトでは、レイアウト方向は verticalに設定されていますが、 horizontalとして設定することもできます。 文字列 いいえ

DatePicker

日付ピッカー・フィールドは、「編集可能フィールド」プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "datePicker" はい
defaultValue このフィールドの初期値。書式はYYYY-MM-DDにする必要があります。 string いいえ
minDate 許可されている最小または最も早い日付。書式はYYYY-MM-DDにする必要があります。 string いいえ
maxDate 許可されている最大または最新の日付。書式はYYYY-MM-DDにする必要があります。 string いいえ

TimePicker

時間ピッカー・フィールドは、「編集可能フィールド」プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "timePicker" はい
defaultValue このフィールドの初期値(24時間形式でHH:mmとして入力)。 string いいえ
minTime 24時間形式でHH:mmとして入力できる最小時間(もしくはもっとも早い時間)。例00:00 string いいえ
maxTime HH:mmとして24時間形式で入力できる最大時間(または最遅時間)。例: 13:00 string いいえ

切替え

トグル・フィールドは、すべての「編集可能フィールド」プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "toggle" はい
defaultValue 選択した初期値。トグルを最初にオンにする場合は、デフォルト値をvalueOnと同じ値に設定します。 string いいえ
valueOff toggleがオフの場合の値 string はい
valueOn トグルがオンのときの値 string はい
labelOff 「off」値のラベル string いいえ
labelOn 「on」値のラベル string いいえ

TextInput

テキスト入力フィールドは、「編集可能フィールド」プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "textInput" はい
defaultValue このフィールドの初期値 string いいえ
validationRegularExpression このテキスト入力に必要な形式を示す正規表現 string いいえ
multiline 入力の複数行をレンダリングするかどうかを決定するフラグ boolean いいえ
minLength ユーザーが入力する必要がある最小長 整数 いいえ
maxLength テキスト入力フィールドに許可される最大文字数 整数 いいえ
inputStyle クライアントによって使用される入力スタイル。指定できる値は、"text""tel""url""email",および"password"です。入力スタイルが設定されていない場合は、textに戻ります。 string いいえ

NumberInput

数値入力フィールドは、「編集可能フィールド」プロパティを継承し、次の追加プロパティを持ちます。
名前 説明 タイプ 必須?
displayType フィールド・タイプ "numberInput" はい
defaultValue このフィールドの初期値 Integer いいえ
minValue 最小許容数 Integer いいえ
maxValue 許容される最大の数値。 Integer いいえ

selectFieldOption

「単一選択」および「複数選択」フィールドでは、次のプロパティを持つ選択フィールド・オプションのリストが使用されます:
名前 説明 タイプ 必須?
label 表示テキスト string はい
value オプションの値 プリミティブ・データ型(文字列、数値、ブールなど) いいえ
channelExtensions フィールド・オプションに関連付けられたチャネル固有の拡張プロパティ。 JSONObject いいえ

TableHeading

TableまたはTable-Formオブジェクト内の表のヘッダーを表します。
名前 説明 タイプ 必須?
label ヘッダー・ラベル 文字列 はい
alignment セル内のラベルの位置 "left", "right", "center" はい
width 見出しに指定する必要がある表幅の推奨パーセント。   いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

TableRow

フィールドの配列を表します。
名前 説明 タイプ 必須?
fields フィールドの配列 <フィールド> はい
selectAction 行が選択されたときに実行されるアクション。ユーザーが行の上にカーソルを置くと、アクションのラベルがツールチップとして表示されます。 アクション いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

フォーム

フィールドの配列とタイトルを表します。表行のネストされた形式のTable-Formメッセージで使用されます。
名前 説明 タイプ 必須?
id フォームのID 文字列 いいえ
title フォーム・タイトル 文字列 いいえ
fields フィールドの配列 配列<フィールド> はい
actions アクションの配列 配列<BotsAction> いいえ
separator フォームのセパレータを表示するかどうか。この値を渡さない場合は、フォームにセパレータが表示されます。 ブール値 いいえ
formRows 編集可能フィールドと読取り専用フィールドの両方を含めることができる行のリスト。フィールドのリスト(fieldsおよびオプションでformColumnsプロパティを使用)またはこのプロパティを使用して行のリストを定義できます。fieldsformRowsは相互に排他的です。 アクション いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

FormRow

名前 説明 タイプ 必須?
id フォーム行のID 文字列 いいえ
columns フォーム行に表示される列のリスト。 配列<FormColumn> はい
selectAction フォームが選択されたときに実行されるアクション。ユーザーがフォームの上にカーソルを置くと、アクションのラベルがツールチップとして表示されます(チャネルでサポートされている場合)。 アクション いいえ
separator このプロパティをtrueに設定すると、フォーム行のコンテンツの上にセパレータ行を挿入します。 Boolean いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

FormColumn

名前 説明 タイプ 必須?
id 列のID 文字列 いいえ
fields 列内に垂直に表示されるフィールドのリスト。列がForm内のFormRowで使用される場合、これらのフィールドはReadOnlyFieldインスタンスである必要があります。FormRowEditFormMessagePayload内で使用されている場合、フィールドは読取り専用フィールドと編集可能フィールドの両方にできます。 配列<フィールド> はい
verticalAlignment 同じフォーム行の他のカラムに対するカラムの垂直配置。 文字列 いいえ
width フォーム行内の列の幅を決定します。使用可能な値は、auto (デフォルト)およびstretchです。stretchに設定すると、自動幅の列がレンダリングされた後、列には残りのすべての幅が使用されます。stretchに設定された列が複数ある場合は、残りの幅を均等に分割します。 文字列 いいえ
widthPct 幅が固定に設定されている場合に渡されます。列要素のwidthプロパティを、渡されたパーセンテージ値に設定します。 番号 いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

EventContextProperties

イベント・コンテキスト・プロパティは、CloudEventコンテキスト・プロパティを表します。
名前 説明 タイプ 必須?
dataschema データが従うスキーマを識別します。 URI いいえ "/dw/approval_payload.json"
datacontenttype データ属性に含まれているデータのコンテンツ・タイプ。 文字列 いいえ "application/json"
source イベントを生成したリソース。 URI いいえ "objectstorage"
time RFC 3339タイムスタンプ書式で表されるイベントの時間。 タイムスタンプ いいえ "2021-01-10T21:19:24Z"
specversion CloudEvents仕様のバージョン。 文字列 いいえ "1.0"
id CloudEvents指定のID。 文字列 いいえ "123e4567-e89b-12d3-a456-426614174000"
subject イベント・プロデューサまたはイベント・タイプ(あるいはその両方)のコンテキストにおけるイベントのサブジェクト。 文字列 いいえ "mynewfile.jpg"

対話メッセージ

会話の一部であるすべてのメッセージは、次の構造を持ちます:
名前 説明 タイプ 必須?
messagePayload メッセージ・ペイロード メッセージ はい
userId ユーザーID string はい
例:
{
    "messagePayload": {
        "text": "show menu",
        "type": "text"
    },
    "userId": "guest"
}

メッセージ

Messageは、他のすべてのメッセージの抽象ベース・タイプです。すべてのメッセージはこれを拡張して情報を提供します。
名前 説明 タイプ 必須?
type メッセージ・タイプ string はい

ユーザー・メッセージ

ユーザーからスキルに送信されるメッセージを表します。

ユーザー・テキスト・メッセージ

サーバーに送信される単純なテキスト・メッセージ。
名前 説明 タイプ 必須?
type メッセージ・タイプ "text" はい
text メッセージ・テキスト string はい
例:
{
    "messagePayload": {
        "text": "Order Pizza",
        "type": "text"
    },
    "userId": "guest"
}

ユーザー・アタッチメント・メッセージ

サーバーに送信されるアタッチメント・レスポンス・メッセージ。
名前 説明 タイプ 必須?
type メッセージ・タイプ "attachment" はい
attachment アタッチメント・メタデータ 添付 はい
例:
{
    "messagePayload": {
        "attachment": {
            "type": "image",
            "url": "http://oda-instance.com/attachment/v1/attachments/d43fd051-02cf-4c62-a422-313979eb9d55"
        },
        "type": "attachment"
    },
    "userId": "guest"
}

ユーザー・ポストバック・メッセージ

サーバーに送信されるポストバック・レスポンス・メッセージ。
名前 説明 タイプ 必須?
type メッセージ・タイプ "postback" はい
text ポストバック・テキスト string いいえ
postback 選択したアクションのポストバック 文字列またはJSONObject はい
例:
{
    "messagePayload": {
        "postback": {
            "variables": {
                "pizza": "Small"
            },
            "system.botId": "69BBBBB-35BB-4BB-82BB-BBBB88B21",
            "system.state": "orderPizza"
        },
        "text": "Small",
        "type": "postback"
    },
    "userId": "guest"
}

ユーザー・ロケーション・メッセージ

サーバーに送信されるロケーション・レスポンス・メッセージ。
名前 説明 タイプ 必須?
type メッセージ・タイプ "location" はい
location ユーザー・ロケーション情報 ロケーション はい
例:
{
    "messagePayload": {
        "location": {
            "latitude": 45.9285271,
            "longitude": 132.6101925
        },
        "type": "location"
    },
    "userId": "guest"
}

ユーザーinboundEventメッセージ

サーバーに送信できるアウトバウンド・イベント・メッセージを表します。Messageには、次のプロパティが適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "inboundEvent" はい
eventType イベント・タイプ(イベント・カタログで定義) 文字列 はい
eventVersion イベント・タイプ・バージョン(イベント・カタログで定義) 文字列 はい
eventData ビジネス・データ JSONObject はい
contextProperties イベント・コンテキスト・プロパティ イベント・コンテキスト・プロパティ いいえ
例:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.orderserved",
        "type": "inboundEvent",
        "contextProperties": {
            "id": "6ce23f09-bff7-4369-8467-0c510e971aaf",
            "source": "pizza/service",
        }
    },
    "userId": "guest"
}

ユーザー・フォーム提出メッセージ

これは、ユーザーがSubmitFormActionによってフォームを送信した後に送信されるフォーム送信メッセージを表します。これには、次のプロパティがあります。
名前 説明 タイプ 必須?
type メッセージ・タイプ "formSubmission" はい
submittedFields 送信されたフィールド値のキーと値のペア。キーは、フィールドの名前(ID)です。 JSONObject はい
postback ポストバック・ペイロード。ナビゲーションをトリガーするアクション・プロパティが含まれる場合があります。このプロパティの値は、SubmitFormActionから取得する必要があります。 JSONObject いいえ
partialSubmitField 部分フォーム提出をトリガーするフィールドのID。autoSumbitプロパティをtrueに設定したフィールドは、フォームの一部の送信をトリガーできます。 文字列 いいえ
JSONの例
{
    "messagePayload": {
        "submittedFields": {
            "Attendees": [
                "Toff van Alphen"
            ],
            "Type": "Public transport",
            "Description": "expense",
            "Subject": "Expense",
            "Date": "2023-06-07",
            "Time": "18:58",
            "Amount": 6,
            "TipIncluded": "true"
        },
        "partialSubmitField": "Attendees",
        "type": "formSubmission"
    },
    "userId": "guest"
}

レスポンス・メッセージ

スキルまたはエージェントからユーザーに送信されるメッセージを表します。

名前 説明 タイプ 必須?
type メッセージ・タイプ string はい
headerText メッセージ・テキストの上に表示されるヘッダー・テキスト。 string いいえ
footerText メッセージ・テキストおよびアクションの下、グローバル・アクションの前に表示されるフッター・テキスト。 string いいえ
actions メッセージに関連するアクションのリスト Array<Action> いいえ
footerForm メッセージのフッター・テキストの下とそのグローバル・アクションの上に表示されるフォーム・レイアウト。 スキル・フォーム・メッセージ いいえ
globalActions テキストに関連するグローバル・アクションのリスト 配列<Action> いいえ
channelExtensions メッセージに関連付けられたチャネル固有の拡張プロパティ JSONObject いいえ

スキル添付メッセージ

アタッチメント・メッセージを表します。次のプロパティが「レスポンス・メッセージ」に適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "attachment" はい
attachment 送信されるアタッチメント 添付 はい
ノート

ホスト・サイトからのファイルのアップロードが失敗すると、次のようなコンソール・エラーがスローされます:
https://<oda-instance>/chat/v1/attachments from origin <client site> has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource
これは、すべてのクロスオリジンHTTPリクエストをブロックするホスト・サイトのCORS (Cross - Origin Resource Sharing)設定により、クライアント・インスタンスからOracle Digital Assistantアタッチメント・サーバーへのアップロード・リクエストもブロックされる可能性があるためです。この問題が発生した場合は、ホスト・サイトのセキュリティ・ポリシーを更新して、デジタル・アシスタント・インスタンスのドメインを許可します。会話ではWebSocket接続が使用されるため、CORSは会話に影響しません。

スキル・カード・メッセージ

ユーザーに対し、カルーセルとして水平方向に、またはリストとして垂直方向に表示される一連の選択項目を表します。次のプロパティが「レスポンス・メッセージ」に適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "card" はい
layout メッセージを水平方向または垂直方向のどちらで表示するか。 string (値: horizontalvertical) はい
cards レンダリングされるカードの配列。 配列 はい

スキル応答コマンド・メッセージ・ペイロード

コマンド・メッセージ・ペイロードを表します。
名前 説明 タイプ 必須?
type メッセージ・タイプ "command" はい
command 実行すべきコマンド string はい
properties キーと値のペアのマップ JSONObject はい

スキル応答エラー・メッセージ・ペイロード

バックエンドのエラーに関するフィードバックをクライアントに提供するエラー・メッセージ・ペイロードを表します。
名前 説明 タイプ 必須?
type メッセージ・タイプ "error" はい
errorMessage エラー・メッセージ string はい
error java.lang.Error object string いいえ

スキル・レスポンスExecuteApplicationContextCommandメッセージ・ペイロード

これは、アプリケーション・アクションの実行コマンド・メッセージ・ペイロードを表します。
名前 説明 タイプ 必須?
type メッセージ・タイプ "executeApplicationActionCommand"  
actionType アクションのタイプ "custom", "navigate", "query", "updateFields" はい
command execute application actionコマンド "executeApplicationAction" はい
context アプリケーション・コンテキストの名前 string はい
customAction actionTypeが'custom'の場合に取得されます。 string いいえ
properties アクションの実行時に引数として使用できるキーと値のペア JSONObject いいえ

フィードバック・メッセージ

これは、評価ゲージ(通常は星評価システム)を使用してユーザーのフィードバックを取得するフィードバック評価コンポーネントを表します。ペイロードはテキスト・メッセージと似ていますが、{ "displayType": "stars" }として設定された追加のchannelExtensionsオブジェクト・フィールドがあります。次のプロパティが「レスポンス・メッセージ」に適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "text" はい
text メッセージ・テキスト string はい
channelExtensions ペイロードの拡張を記述するオブジェクト。 { “displayType”: “stars” } はい
例:
{
    "messagePayload":{
        "text":"How would you like to rate us?",
        "type":"text",
        "actions":[
            {
                "postback":{
                    "variables":{
                        "rating":"1"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"1",
                    "system.state":"giveFeedback"
                },
                "label":"1",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"2"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"2",
                    "system.state":"giveFeedback"
                },
                "label":"2",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"3"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"3",
                    "system.state":"giveFeedback"
                },
                "label":"3",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"4"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"4",
                    "system.state":"giveFeedback"
                },
                "label":"4",
                "type":"postback"
            },
            {
                "postback":{
                    "variables":{
                        "rating":"5"
                    },
                    "system.botId":"61C8D800-23AF-4DDD-B5AF-D79AB3F3BE67",
                    "action":"5",
                    "system.state":"giveFeedback"
                },
                "label":"5",
                "type":"postback"
            }
        ],
        "channelExtensions":{
            "displayType":"stars"
        }
    },
    "source":"BOT",
    "userId":"<userID>"
}

スキル・ロケーション・メッセージ

ロケーション・メッセージを表します。次のプロパティが「レスポンス・メッセージ」に適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "location" はい
location ロケーション ロケーション はい

スキル・アウトバウンド・イベント・メッセージ

サーバーから送信できるアウトバウンド・イベント・メッセージを表します。Messageには、次のプロパティが適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "outboundEvent" はい
eventType イベント・タイプ(イベント・カタログで定義) 文字列 はい
eventVersion イベント・タイプ・バージョン(イベント・カタログで定義) 文字列 はい
eventData ビジネス・データ JSONObject はい
contextProperties イベント・コンテキスト・プロパティ イベント・コンテキスト・プロパティ いいえ
例:
{
    "messagePayload": {
        "eventData": {
            "size": "Medium",
            "type": "Cheese"
        },
        "eventVersion": "1.0",
        "eventType": "com.pizzastore.pizza.ordercreated",
        "type": "outboundEvent",
        "contextProperties": {
            "tenancy": "odaserviceinstance00",
            "specversion": "1.0",
            "id": "7a923f09-bff7-4369-8467-0c510e971aaf",
            "source": "hello/app",
            "time": 1659357000,
            "type": "com.pizzastore.pizza.ordercreated",
            "channelname": "System_Global_Test",
            "version": "1.0",
            "userid": "3910088",
            "contenttype": "application/json"
        }
    }
}

スキルRAWメッセージ

コンポーネントでチャネル固有のペイロード自体を作成する場合に使用します。
名前 説明 タイプ 必須?
type メッセージ・タイプ "raw" はい
payload チャネル固有のペイロード JSONオブジェクト はい

スキル応答セッションクローズ済メッセージ・ペイロード

これは、セッション・クローズ・メッセージ・ペイロードを表します。これにより、バックエンドでのセッション・クローズの確認が提供されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "sessionClosed" はい

スキル応答テキスト・メッセージ

テキスト・メッセージを表します。次のプロパティが「レスポンス・メッセージ」に適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "text" はい
text メッセージ・テキスト 文字列 はい
例:
{
    "messagePayload": {
        "type": "text",
        "text": "What do you want to do?",
        "actions": [
            {
                "type": "postback",
                "label": "Order Pizza",
                "postback": {
                    "state": "askAction",
                    "action": "orderPizza"
                }
            },
            {
                "type": "postback",
                "label": "Cancel A Previous Order",
                "postback": {
                    "state": "askAction",
                    "action": "cancelOrder"
                }
            }
        ]
    },
    "userId": "guest"
}

スキル応答テキスト・ストリーム・メッセージ・ペイロード

テキスト・ストリーム・レスポンス・ペイロードrは、チャンクで配信されるストリーミング・テキスト・レスポンスを表します。レスポンス・メッセージ・ペイロードに次のプロパティが適用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "texStream" はい
aggregateText 現在のチャンクまでストリームに配信される集計テキスト。 文字列 はい
streamId ストリームのID。同じストリームのチャンクは、同じstreamIdを持ちます。 文字列 はい
streamState 現在のストリーム・チャンクのストリーム状態 "start", "running", "end" はい
text 現在のチャンクに配信された部分テキスト 文字列 はい

スキル・フォーム・メッセージ

読取り専用フォームで問合せの結果を返すメッセージを表します。メッセージは、フォーム結果の配列で構成されます。各フォーム結果には、フィールドを表すキーと値のペアを持つfields配列が含まれます。次のプロパティが「レスポンス・メッセージ」に適用されます。
ノート

このメッセージ・タイプは、SQLダイアログに使用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "form" はい
forms フォーム結果の配列。各結果には、フォーム・フィールドを表すfields配列が含まれます。 配列<Row> はい
formColumns フォームのフィールドをグループ化する列の数。 1, 2 はい
paginationInfo フォーム内の結果のページング情報 PaginationInfo いいえ
{
    "type":"form",
    "headerText":"A-Team",
    "forms":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/aaron-adams-4862752"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "globalActions":[
        {
            "postback":{
                "variables":{},
                "action":"system.showMore"
            },
            "label":"Show More",
            "type":"postback"
        }
    ]
}

スキル表メッセージ

クエリの結果を表形式で返すメッセージを表します。メッセージは、見出しの配列と行の配列で構成されます。行自体には、個々のセルを表すfields配列が含まれます。次のプロパティが「レスポンス・メッセージ」に適用されます。
ノート

このメッセージ・タイプは、SQLダイアログに使用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "table" はい
headings 表見出しの配列 配列<見出し> はい
tableTitle 表タイトル 文字列 いいえ
rows 表行の配列。各行には、表のセルを表す fields配列が含まれます。 配列<Row> はい
paginationInfo 表内の結果のページング情報 PaginationInfo いいえ
{
    "type":"table",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":20,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":20,
            "label":"Last Name",
            "alignment":"left"
        },
        {
            "width":35,
            "label":"Title",
            "alignment":"left"
        },
        {
            "width":25,
            "label":"Phone",
            "alignment":"right"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"David"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Davidson"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Machine Learning Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "width":20,
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Eric"
                },
                {
                    "displayType":"text",
                    "width":20,
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Eastman Junior"
                },
                {
                    "displayType":"text",
                    "width":35,
                    "label":"Title",
                    "alignment":"left",
                    "value":"Docker Expert"
                },
                {
                    "displayType":"text",
                    "width":25,
                    "label":"Phone",
                    "alignment":"right",
                    "value":"1234567890"
                }
            ]
        }
    ],
    "paginationInfo":{
        "currentRangeSize":5,
        "rangeStart":0,
        "nextRangeSize":-3,
        "hasPrevious":false,
        "hasNext":false,
        "totalCount":5,
        "rangeSize":8,
        "status":"Showing 1-5 of 5 items"
    }
}

スキル表- フォーム・メッセージ

このメッセージは、Tableメッセージ・タイプとFormメッセージ・タイプを結合します。これは、問合せの結果を表形式で返すメッセージを表します。表の各行には、行情報に加えて読取り専用フォームがあります。次のプロパティが「レスポンス・メッセージ」に適用されます。
ノート

このメッセージ・タイプは、SQLダイアログに使用されます。
名前 説明 タイプ 必須?
type メッセージ・タイプ "tableForm" はい
tableTitle 表タイトル 文字列 いいえ
headings 表見出しの配列 配列<見出し> はい
rows 表行の配列。各行には、表のセルを表すフィールドの配列が含まれます。 配列<Row> はい
forms 各表の行に対応するフォーム結果の配列。各フォームには、フォーム・フィールドを表すfields配列が含まれます。 配列<Form> はい
formColumns フォームのフィールドをグループ化する列の数。 1, 2 はい
paginationInfo テキストに関連するグローバル・アクションの配列 配列<Action> いいえ
{
    "type":"tableForm",
    "headerText":"A-Team",
    "tableTitle": "Document",
    "headings":[
        {
            "width":47,
            "label":"First Name",
            "alignment":"left"
        },
        {
            "width":47,
            "label":"Last Name",
            "alignment":"left"
        }
    ],
    "rows":[
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Aaron"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Adams"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Bob"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Brown"
                }
            ]
        },
        {
            "fields":[
                {
                    "displayType":"text",
                    "label":"First Name",
                    "alignment":"left",
                    "value":"Charlie"
                },
                {
                    "displayType":"text",
                    "label":"Last Name",
                    "alignment":"left",
                    "value":"Chase"
                }
            ]
        }
    ],
    "forms":[
        {
            "title":"View details Aaron Adams",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Demo Builder"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Aaron-adams-4862572"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left"
                }
            ]
        },
        {
            "title":"View details Bob Brown",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Multi-lingual Expert"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Bobbrown"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Bob is a member of the cloud architects team which is specialized in enterprise mobility and cloud development. Bob has been directly involved with Oracle middleware since 2005 during which he held different roles in managing highly specialized teams."
                }
            ]
        },
        {
            "title":"View details Charlie Chase",
            "fields":[
                {
                    "displayType":"text",
                    "label":"Title",
                    "alignment":"left",
                    "value":"Flow Builder Fanatic"
                },
                {
                    "displayType":"text",
                    "label":"Phone",
                    "alignment":"left",
                    "value":"1234567890"
                },
                {
                    "linkLabel":"Open Link",
                    "displayType":"link",
                    "label":"Contact",
                    "alignment":"left",
                    "value":"https://www.example.com/in/Charlie-chase-97a418"
                },
                {
                    "displayType":"text",
                    "label":"Bio",
                    "alignment":"left",
                    "value":"Charlie is a member of the enterprise mobility team. Charlie has 20+ years experience with custom development. Charlie is an expert on mobile cloud services and development tools. He is the creator of productivity tools. His latest passion is building chatbots with a minimum amount of custom code."
                }
            ]
        }
    ],
    "formColumns":2,
    "paginationInfo":{
        "currentRangeSize":3,
        "rangeStart":0,
        "nextRangeSize":2,
        "hasPrevious":false,
        "hasNext":true,
        "totalCount":5,
        "rangeSize":3,
        "status":"Showing 1-3 of 5 items"
    },
    "actions":[
        {
            "postback":{
                "variables":{

                },
                "action":"system.showMore"
            },
            "label":"Show More",
            "type":"postback"
        }
    ],
    "footerText":"Tap on a row to see personal details"
}

スキル編集フォーム・メッセージ

編集可能なフォーム・メッセージ(入力フォーム)を表します。メッセージは Field配列で構成されます。
名前 説明 タイプ 必須?
type メッセージ・タイプこの例では、"editForm"です。 "editForm" はい
title 編集フォームの担当者タイトル 文字列 いいえ
fields 編集可能フィールドと読取り専用フィールドの両方を含めることができるフィールドのリスト。 配列<Field> はい
formColumns フォーム・フィールドをグループ化する列の数。このプロパティは、fieldプロパティも設定した場合にのみ適用されます。 Integer いいえ
formRows 編集可能フィールドと読取り専用フィールドの両方を含めることができる行のリスト。fieldsプロパティのいずれかを設定し、formRowsを設定する必要があります。これらは相互に排他的です。 配列<FormRow>  
errorMessage ユーザーが無効なデータを送信したが、エラーを個々のフィールドにリンクできない場合に表示されるフォーム・レベルのエラー・メッセージ。 文字列 番号
actions 編集フォームに関連するアクションの配列。この配列には、SubmitFormActionが含まれます。SubmitFormActionactions配列に含まれていない場合、ブラウザ・コンソールにエラーが表示されます。 配列<Action> 番号
globalActions グローバル・アクションの配列 配列<Action> いいえ
channelExtensions チャネル固有の拡張プロパティのセット

channelExtensionsオブジェクトには、前の入力フォームを置換するために使用される replaceMessageプロパティを含めることができます。

JSONObject いいえ
{
    "messagePayload": {
        "headerText": "Create Expense",
        "type": "editForm",
        "title": "Fill in the below form",
        "fields": [
            {
                "displayType": "textInput",
                "serverErrorMessage": "Invalid Text Input",
                "defaultValue": "Expense",
                "minLength": 5,
                "id": "Subject",
                "label": "Subject",
                "placeholder": "Enter subject of the expense",
                "clientErrorMessage": "Subject is required and must be between 5 and 15 characters",
                "maxLength": 15,
                "required": true
            },
            {
                "displayType": "textInput",
                "defaultValue": "expense",
                "multiLine": true,
                "id": "Description",
                "label": "Description",
                "placeholder": "What is expense justification",
                "clientErrorMessage": "Description is required",
                "required": true
            },
            {
                "displayType": "datePicker",
                "defaultValue": "2023-06-07",
                "maxDate": "2023-06-22",
                "id": "Date",
                "label": "Expense Date",
                "placeholder": "Pick a date in the past",
                "clientErrorMessage": "Expense date is required and must be in the past.",
                "required": true
            },
            {
                "displayType": "timePicker",
                "defaultValue": "18:58",
                "id": "Time",
                "label": "Expense Time",
                "placeholder": "What time was the expense",
                "clientErrorMessage": "Time is required. Please fill a value",
                "required": true
            },
            {
                "displayType": "numberInput",
                "minValue": 5,
                "defaultValue": 6,
                "maxValue": 500,
                "id": "Amount",
                "label": "Amount",
                "placeholder": "Enter expense amount",
                "clientErrorMessage": "Amount is required and must be between 5 and 500.",
                "required": true
            },
            {
                "autoSubmit": true,
                "displayType": "toggle",
                "defaultValue": "true",
                "labelOn": "Yes",
                "id": "TipIncluded",
                "label": "Tip Included?",
                "valueOff": "false",
                "labelOff": "No",
                "valueOn": "true"
            },
            {
                "displayType": "singleSelect",
                "serverErrorMessage": "Invalid Selection",
                "defaultValue": "Public transport",
                "options": [
                    {
                        "label": "Public transport",
                        "value": "Public transport"
                    },
                    {
                        "label": "Flight",
                        "value": "Flight"
                    }
                ],
                "layoutStyle": "list",
                "id": "Type",
                "label": "Expense Type",
                "placeholder": "Select expense type",
                "clientErrorMessage": "Expense type is required",
                "required": true
            },
            {
                "displayType": "multiSelect",
                "defaultValue": [
                    "Toff van Alphen"
                ],
                "options": [
                    {
                        "label": "Toff van Alphen",
                        "value": "Toff van Alphen"
                    },
                    {
                        "label": "Roger Federer",
                        "value": "Roger Federer"
                    }
                ],
                "layoutStyle": "checkboxes",
                "id": "Attendees",
                "label": "Attendees",
                "placeholder": "Select attendees",
                "clientErrorMessage": "Please select atleast one attendee",
                "required": true
            }
        ],
        "formColumns": 1,
        "actions": [
            {
                "postback": {
                    "system.botId": "6803DE12-DAA9-4182-BD54-3B4D431554F4",
                    "system.flow": "ExpenseFlow",
                    "system.state": "editFormMapVar"
                },
                "label": "Submit",
                "type": "submitForm"
            }
        ],
        "channelExtensions": {
            "replaceMessage": "True"
        }
    },
    "source": "BOT",
    "userId": "guest"
}