Dialogflow v2 userStorage 사용법

Dialogflow가 v2가 되어 userStorage의 저장 방법도 바뀌었습니다.
userStorage는 작업을 종료해도 영구적으로 데이터가 남아 있습니다.
별도 데이터베이스를 준비하지 않아도 간이적인 데이터의 저장에는 적합합니다.

※100일간 아무것도 갱신 없으면 사라지는 것 같습니다. 이후 사용자가 앱을 재설정하면 사라집니다.

인라인 편집기에서 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 ロード 설정을 전환하고 있습니다.



요약



간편하게 데이터를 영구적으로 저장할 수 있었습니다.
운세 앱에서 사용자의 별자리 정보를 저장하거나 날씨 앱에서 살고있는 지역을 저장하는 등
다양한 용도로 사용할 수 있습니다. 꼭! 사용해보세요!

좋은 웹페이지 즐겨찾기