Messaging API v1を用いてチャットボットにメッセージを送信する際、メッセージフォーマットは以下のようになります。
共通フィールド
以下の要素は発言の内容に関わらず、全ての発言で使用可能です。
Request headers:
Content-Type:application/json
Request body:
sender_name: 発言者の名前(省略した場合はGuest)
フォーマット:
{
"sender_name": "サンプルユーザー",
"type": "xxxxx",
"content": {
}
}
ユーザーによる通常発言
通常の発言をあらわすメッセージです。
Yes/No選択肢の「はい」、「いいえ」なども選択できます。
フォーマット:
text: 発言する文字列
{
"type": "text",
"content": {
"text": "任意のテキスト"
}
}
カルーセルに対して、ユーザーによる選択を行う場合
チャットボットの返信としてカルーセルを表示する場合、以下のようなメッセージが返されます。
{
"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": null
}
]
}
}
受信したメッセージの中から、実行したいactionの valueを送ることで、カルーセルの選択が行えます。
例として、「△△亭」の「予約する」を選択する場合のリクエストは以下のようになります。
フォーマット:
text: 発言する文字列value: 選択したいカルーセルの要素
{
"type": "text",
"content": {
"text": "任意のテキスト(選択には影響しませんが、ユーザー発言としてログには残ります)",
"value": "2|reserve"
}
}
シナリオのリセット
チャットボット編集画面で設定した特定のキーワード (例: リセット) を発言することで、実行中のシナリオをリセットし、チャット開始直後に戻ることができます。
また、以下の形式のメッセージを送信することでも、実行中のシナリオをリセットし、チャット開始直後に戻ることができます。
フォーマット:
{
"type": "event",
"content": {
"type": "reset"
}
}
レスポンス:
メッセージの送信に成功した場合は 200 OK が返されます。
チャットボット編集画面でリセット機能を無効化している場合は 400 Bad Request が返されます。
シナリオの進行状況を一つ前に戻す(Undo)
チャットボット編集画面で設定した特定のキーワードを発言することで、一つ前の選択肢やヒアリングなどに戻り、チャットボットからのメッセージを再度表示することができます。
また、以下の形式のメッセージを送信することでも、一つ前の選択肢やヒアリングなどに戻ることができます。
フォーマット:
{
"type": "event",
"content": {
"type": "undo"
}
}
レスポンス:
メッセージの送信に成功した場合は 200 OK が返されます。
チャットボット編集画面で1つ前に戻る機能を無効化している場合は 400 Bad Request が返されます。