kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

Voiceflow TIPS #28 ユーザプロファイルにアクセスする

Voiceflow夏休みAdvent Calendarの遅ればせながら28日目です・・・最終日はこれから!

今日は前回少しご紹介した、Userinfo Block + Permission Blockを使ってユーザプロファイルAPIにアクセスして、ユーザ情報を取ってくる仕組みについて説明します。ユーザプロファイルAPIはAlexaのユーザ情報にアクセスするためAPIです。これを活用することで以下の情報を取得できます。

  • 名前
  • メールアドレス
  • 電話番号

名前を使ってアレクサに発話させることで親近感が持てたり、メールアドレスや電話など、ユーザへリーチするための別の手段を使うことでEchoデバイス以外の接点を持ったり、といろいろなアイデアが考えられます。

Voiceflowではユーザプロファイルへのアクセスが非常にかんたんにできます。ではやってみましょう。

スキルの全体図

全体図はこんな感じです。サンプルなので、ユーザプロファイルから取得した情報をそのまま喋らせるだけです。少ないですね。

f:id:kun432:20190831211158p:plain

順に見ていきます。まず変数を作ります。名前・メールアドレス・電話番号の3つ、それぞれを入れておくための変数を用意します。

f:id:kun432:20190831211238p:plain

最初のSpeakで起動時のメッセージを発話します。

f:id:kun432:20190831211633p:plain

ユーザの許可が必要な情報にアクセスするUser Info Block

今日の本題のUser Info Blockです。

f:id:kun432:20190831213007p:plain

User Info Blockは、「権限が必要な情報を取得して変数に入れる」ことをします。取得ができない場合、すなわち、「許可されていない」場合にfailに流れます。それを使って、failの場合はカードを使って権限の許可を促す、というのが使い方になります。実際にやってみましょう。

"+ Add Permission Request"をクリックします。

f:id:kun432:20190831212424p:plain

ドロップダウンからアクセスしたい情報を選びます。今回は「ユーザ名」を選んでみます。

f:id:kun432:20190831212442p:plain

次に取得した情報を変数に入れるので、変数を指定します。

f:id:kun432:20190831212458p:plain

はい、こんな感じです。

f:id:kun432:20190831212725p:plain

これを繰り返していって、最終的に最初のような感じになればOKです。

で、取得できない場合のフローです。

Speak Blockで権限の許可を促します。

f:id:kun432:20190831213742p:plain

Permission Blockで権限の許可を求めるカードを送信します。今回必要な情報、「名前」「電話番号」「メールアドレス」をONにします。

f:id:kun432:20190831213847p:plain

で、成功した場合のフローはこんな感じで発話させてみました。

f:id:kun432:20190831214059p:plain

テスト

ではテストしてみましょう。初回は権限が許可されていないので、こんな感じでカードへ誘導されます。

f:id:kun432:20190831214718p:plain

で、カードはこんな感じになります。

f:id:kun432:20190831214750p:plain

f:id:kun432:20190831214804p:plain

で、許可したあとの再実行はこういう感じです。伏せてますのでよくわからないかもですが、きちんと取れています。

f:id:kun432:20190831215015p:plain

ユーザプロファイルを利用する場合の注意

非常にかんたんに利用可能なユーザプロファイルですが、実際にスキルで利用する場合には注意が必要です。

  • ユーザプロファイルは、まさに個人情報へのアクセスになりますので、取り扱いには十分ご注意ください。
  • また、それらの情報をスキル内に保存する場合もよく考えてください。できる限り、フロー変数を使って、必要なときに取得するようにして、あくまでも一時的な利用に留めるほうが安全です。
  • 申請時にプライバシーポリシーの準備が必須となります。

このあたり、十分に注意の上で、ご活用ください。