BotUserSessionを呼び出す際、お客様の発話(クエリ)の位置が変わる場合があります。そのため、以下のように条件分岐を設定することで、JSONのlast message内からクエリを取得できます。
var query;
// 最初の条件: messagePayload 内のテキストを直接チェックする
// これは、messagePayload が存在し、テキスト フィールドがあるかどうかを確認します。
if (context.session.BotUserSession.lastMessage.messagePayload &&
context.session.BotUserSession.lastMessage.messagePayload.text) {
query = context.session.BotUserSession.lastMessage.messagePayload.text;
}
// 2番目の条件: messagePayload内のmessage.textを確認する
//これは次のことをチェックします:
//-messagePayload が存在する
//-message オブジェクトが含まれている
//-message にテキストが含まれている
else if (context.session.BotUserSession.lastMessage.messagePayload &&
context.session.BotUserSession.lastMessage.messagePayload.message &&
context.session.BotUserSession.lastMessage.messagePayload.message.text) {
query = context.session.BotUserSession.lastMessage.messagePayload.message.text;
}
//3番目の条件: message.body へのフォールバック
else {
query = context.session.BotUserSession.lastMessage.messagePayload.message.body;
}
context.session.BotUserSession.lastMessage.x.x
にクエリがどこにあるかは、スクリプトの実行ログで確認できます。
分析画面のタスク実行ログ内でスクリプト(JSON)の内容を確認することができます。
JSONを簡単に確認・フィルタリングするために、私は以下のウェブサイトを利用しています。
上記kore.aiのJSONをJSON Path Finder
以上