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": {} }