Dialogflow v2のuserStorageの使い方
Dialogflowがv2になってuserStorageの保存方法も変わりました。
userStorageはアクションを終了しても永続的にデータが残るものです。
別途データベースを用意しなくても簡易的なデータの保存にはうってつけです。
※100日間何も更新無ければ消えるらしいです。後、ユーザーがアプリをリセットすると消えます。
Inline Editorにあるindex.jsを編集します。
保存方法
まずは、保存の仕方です。conv.user
の中にあるstorage
を使います。
convはDialogflowConversationのことです。storageの後のmemo
とかは自由に決めることができます。
function save(agent) {
// Dialogflowから来るパラメータを取得
const memo = agent.parameters.memo;
// DialogflowConversationを取得
const conv = agent.conv();
// userのstorageに保存する
conv.user.storage.memo = memo;
conv.ask('メモを保存しました');
agent.add(conv);
}
// ここはIntent名
let intentMap = new Map();
intentMap.set('SaveIntent', save);
agent.handleRequest(intentMap);
読み込み方法
次は、保存した値を取得する方法です。conv.user.storage
にある値を単純に取得すればOKです。
function load(agent) {
// DialogflowConversationを取得
const conv = agent.conv();
// storageにあるmemoを取得
const memo = conv.user.storage.memo;
if (memo === undefined) {
conv.ask('メモがありません');
} else {
conv.ask('メモが見つかりました。「'+ memo + '」です');
}
agent.add(conv);
}
// ここはIntent名
let intentMap = new Map();
intentMap.set('LoadIntent', load);
agent.handleRequest(intentMap);
動作例
WelcomeIntentでメモをセーブするかロードするかを案内して、
StartIntentでメモをセーブ
or ロード
の設定を切り替えています。
まとめ
手軽にデータを永続的に保存することができました。
占いアプリでユーザーの星座情報を保存したり、天気アプリで住んでいる地域を保存する等
様々な用途で使えます。是非!お試しあれ!
Author And Source
この問題について(Dialogflow v2のuserStorageの使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/h-takauma/items/6cf9ad0e13695e6aeb5f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .