Google을 통한 개인화
개시하다
Google 보좌관으로 사용자 정보에 맞는 정보를 제공하지 않겠습니까?
예를 들어 연속으로 시작하는 사용자에게 매일 시작해 주셔서 감사합니다.😸」사용자의 위치 정보에 대응하는 정보를 제공하고 게임의 최고 득점을 저장해 보자.
사용자 데이터가 저장되면 할 수 있는 동작의 폭도 커질 것 같아요!💪
다음은 Action Google에서 사용할 수 있는 사용자 데이터를 저장하는 방법입니다.
대화에만 데이터 저장
사용 예:
사용법
한 대화에서만 (시작 -> 종료 전) 정보를 저장하고 싶을 때 conversationToken 활용해 보세요.
동작의Fullfillment 처리Actions on Google Node.js client library 중
conv.data
사용 방법새 변수와 값만 설정하면 됩니다.
↓의 샘플 코드 제작
conv.data.count
으로 호칭될 때마다 계수한다.app.intent('今何回目', conv => {
if (!conv.data.count) {
conv.data.count = 0;
}
const count = ++conv.data.count;
conv.ask("今は" + count + "回目ですよ");
});
작업 사용자 저장소에 저장
이용 예
사용법
사용자 저장소는 Action on Google이 제공하는 모든 동작의 데이터 저장 영역으로, 대화에 걸쳐 데이터를 저장합니다.
이것도 간단한 사용 방법
conv.user.storage
으로 새로운 변수와 값만 설정하면 된다.고려 사항
iOS, 안드로이드에서는 공유할 수 없습니다.(Action이 시작되면 가능하므로 수정합니다.)
app.intent('住所を設定', conv => {
// ユーザストレージのaddressに保存
conv.user.storage.address = '今夜月の見える丘';
conv.ask("おすすめの住所を設定しましたよ");
});
app.intent('どこ住んでるの?', conv => {
// ユーザストレージのaddressを取得
conv.ask("私は" + conv.user.storage.address + "に住んでますよ。とてもいいところです。");
});
lastseen을 이용하다
lastseen
사용자가 마지막으로 방문한 시간을 시간 스탬프로 돌려줍니다.일주일 만에 시동이 걸린 상황에서 "2주 만이네요. 기다렸어요.🌝」이렇게 손을 뗄 수 없는 문장을 컨트롤할 수 있다.
사용하려면
conv.user.last.seen
만 방문하면 됩니다.직접 사용하면
2018-12-09T13:59:07.000Z
그렇게UTC,사용Moment Timezone등간편하게활용할 수 있었으면 좋겠습니다.const moment = require('moment-timezone');
app.intent('Default Welcome Intent', conv => {
// 前回の起動情報があるか確認
if (conv.user.last.seen) {
//
const lastSeen = moment(conv.user.last.seen).tz("Asia/Tokyo").format('YYYY年MM月DD日 HH:mm:ss');
conv.ask(lastSeen + " 以来ですね。久しぶりだね、元気にしてたかい?");
} else {
conv.ask("Let's start developing on Actions on Google!");
}
});
사용자 ID 가져오기
지금까지 Action on Google에서 제공한 저장소에 대해 썼지만, 외부 DB에 데이터를 저장하기 위해서는 사용자의 ID가 필요합니다.
사용자 ID는 Action Google에서 제공하지 않으며 직접 작성하여 관리해야 합니다.
(2018년 3월까지 속성
conv.user.id
이 있었으나 디프리캣이 돼 내년 2019년 3월 삭제될 예정이다.【참고:Anonymous User Identity】처리 시 사용자 ID를 생성한 후 사용자 스토리지 디바이스에서 관리할 수 있습니다.
샘플 코드는 uuidnpm 라이브러리를 사용하여 사용자 ID를 생성합니다.
사용자 스토리지 디바이스가 아닌 경우 이 생성되고 설정됩니다.
const uuid = require('uuid/v4');
// 例: uuidv4を用いて生成する。
const generateUUID = () => {
return uuid();
}
let userId;
// ユーザIDがユーザストレージに保存済みかどうか
if ('userId' in conv.user.storage) {
userId = conv.user.storage.userId;
} else {
// なければ生成する
userId = generateUUID();
conv.user.storage.userId = userId
}
const data = "Something you want to save";
saveDataToDB(userId, data);
개발 기술: 사용자 저장 리셋 방법
디버깅을 할 때 테스트 데이터를 통해 사용자 저장 장치를 여러 번 리셋해야 합니다.
이 경우 사용자 저장소를 빈 대상으로 덮어씁니다.
conv.user.storage = {};
또한 작업이 게시된 경우 Action Directory의 작업 상세 화면 아래에 있는'재설정 애플리케이션'부터 시작할 수 있습니다.총결산
약간의 정보라면 외부의 DB를 사용하지 않아도 간단하게 저장할 수 있다.
조금이라도 공을 들여 영리한 조수가 되어보는 게 어떨까.
참조 링크
Reference
이 문제에 관하여(Google을 통한 개인화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/01en/items/e6fb34d7ba4dd065a44b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)