Messaging API v1を用いて会話履歴を取得する際、メッセージフォーマットは以下のようになります。
共通フィールド
以下の要素はメッセージタイプに関わらず、全てのメッセージに付与されます。
uuid: メッセージを一意に識別するUUIDchannel_uuid: 会話中のチャンネルを一意に識別するUUIDtimestamp: 発言した時間(UTC)sender_platform: 発言者の使用している環境- ユーザー発言:
api_v1 - チャットボット発言:
bot
- ユーザー発言:
sender_uid: 発言者を特定するID- ユーザー発言: チャットルームへ入室する際に指定した
user_id - チャットボット発言: チャットボットの名称
- ユーザー発言: チャットルームへ入室する際に指定した
sender_name: 発言者の名称- ユーザー発言: 発言時の
sender_name - チャットボット発言: チャットボットの名称
- ユーザー発言: 発言時の
sender_type: 発言者の種別- ユーザー発言:
client - チャットボット発言:
bot
- ユーザー発言:
type: メッセージの種別content:typeによって異なる書式で渡されるメッセージ詳細
フォーマット:
会話履歴に含まれるメッセージは、以下のフォーマットで返されます。
※各typeごとの説明では共通フィールドを省略してフォーマットを示します。
{
"uuid": "8f422f05-6b97-42bc-b34e-9b5bb423c92a",
"channel_uuid": "f963f8f7-5a13-40c8-89a6-8b2ee763daba",
"timestamp": "2019-04-19T02:50:15.892701+00:00",
"sender_platform": "bot",
"sender_uid": "レストラン予約ボット",
"sender_name": "レストラン予約ボット",
"sender_type": "bot",
"type": "xxxxx",
"content": {
}
}
通常発言(text)
通常の発言をあらわすメッセージです。
エラーメッセージなどもこのtypeとなります。
また、チャットボットだけではなく、ユーザーの発言もこのtypeで記録されます。
対応するアクションなど:
- 「テキスト発言」アクション
- 初期発言
- 他多数
フォーマット:
text: 発言された文字列
{
"type": "text",
"content": {
"text": "レストラン予約ボットへようこそ!"
}
}
Yes/No確認(confirm)
「はい」か「いいえ」いずれかの選択を求めるメッセージです。
対応するアクションなど:
- 「Yes/No確認」アクション
- 「ヒアリング」アクション
- フィードバック
フォーマット:
title: 質問のタイトルtext: 質問の本文
{
"type": "confirm",
"content": {
"title": "初回利用",
"text": "初めてのご利用ですか?"
}
}
複数選択肢(choose)
複数の選択肢を提示し、いずれかの選択を求めるメッセージです。
対応するアクションなど:
- 「選択肢確認」アクション
- 「他シナリオ呼び出し(選択肢)」アクション
- 「外部システム連携結果を選択肢表示」アクション
- 「FAQ集を用いた質問応答」アクション
- メニュー
フォーマット:
title: 質問のタイトルtext: 質問の本文actions: 選択肢をあらわす配列actions[].type: 選択時の動作(postback固定)actions[].label: 選択肢の表示名(100文字まで)actions[].value: 選択時に送られる値
{
"type": "choose",
"content": {
"title": "好み",
"actions": [
{
"label": "和食",
"type": "postback",
"value": "和食"
},
{
"label": "洋食",
"type": "postback",
"value": "洋食"
},
{
"label": "中華",
"type": "postback",
"value": "中華"
}
],
"text": "オススメを探すため、お好みを教えてください"
}
}
カルーセル表示(carousel)
カルーセルを用いてユーザーの選択を求めるメッセージです。
このカルーセルの特定のボタンを選択するには【メッセージフォーマット(ユーザー発言の送信) - カルーセルに対して、ユーザーによる選択を行う場合】を参照してください。
対応するアクションなど:
- 「カルーセル」アクション
- 「外部連携結果をカルーセル表示」アクション
フォーマット:
carousel_items: カルーセルのアイテム配列carousel_items[].title: カルーセルアイテムのタイトルcarousel_items[].text: カルーセルアイテムの本文carousel_items[].image_url: カルーセルアイテムに表示する画像URLcarousel_items[].default_action: カルーセルアイテム自体をクリックした場合の処理carousel_items[].actions: カルーセルアイテムに対する選択肢を示す配列carousel_items[].actions[].type: 選択時の動作(postbackまたはuri)carousel_items[].actions[].label: 選択肢の表示名(100文字まで)carousel_items[].actions[].value: 選択肢を選びたい場合に送信する値
{
"type": "carousel",
"content": {
"carousel_items": [
{
"text": "新進気鋭の料理人が作る南欧料理がお楽しみいただけます",
"title": "○○レストラン",
"actions": [
{
"label": "予約する",
"type": "postback",
"value": "1|reserve"
},
{
"type": "uri",
"value": "https://www.example.com/",
"label": "ホームページを開く"
}
],
"image_url": "https://www.example.com/image1.png",
"default_action": null
},
{
"text": "落ち着いた雰囲気の中でA5クラスの和牛をどうぞ",
"title": "△△亭",
"actions": [
{
"label": "予約する",
"type": "postback",
"value": "2|reserve"
},
{
"type": "uri",
"value": "https://www.example.com/2",
"label": "ホームページを開く"
}
],
"image_url": "https://www.example.com/image2.png",
"default_action": {
"label": "△△亭",
"type": "postback",
"value": "2|default"
}
}
]
}
}
リストアイテム表示(item_list)
複数の要素をリスト表示するメッセージです。
対応するアクションなど:
- 「外部連携結果をリスト表示」アクション
フォーマット:
items: 表示する要素の配列items[].text: 表示するテキスト
{
"type": "item_list",
"content": {
"items": [
{
"text": "いくらと鮭の親子丼"
},
{
"text": "和牛御膳"
},
{
"text": "とろろせいろ"
}
]
}
}
画像表示(image)
画像の表示を求めるメッセージです。
対応するアクションなど:
- 「画像の送信」アクション
フォーマット:
title: 画像に対するタイトルテキストimage_url: 画像のURLthumb_url: サムネイル画像のURL
{
"type": "image",
"content": {
"title": "画像送信タイトル",
"thumb_url": "https://www.example.com/sample1_t.png",
"image_url": "https://www.example.com/sample1.png"
}
}
チャットボット処理の開始(typing)
ユーザー発言を受信して処理を開始したことを示すメッセージです。
対応するアクションなど:
- なし
フォーマット:
{
"type": "typing",
"content": {}
}
チャットボット処理の終了(done)
ユーザー発言に対する処理を終えたことを示すメッセージです。
対応するアクションなど:
- なし
フォーマット:
{
"type": "done",
"content": {}
}