こんにちは。ITとこけしの融合を目指して活動中のこけし部 部長 坂本(@t_sakam)です。前回からはじまったAlexaに関する新連載「kokexa Go!」。
『「Amazon Go」にインスパイアされた「kokexa Go」という、レジレスこけしショップを開きたい! そのためには毎回機能を追加していかなければいけない…、はたして「kokexa Go」はできあがるのか…。』というストーリーの連載です。
※このストーリーはフィクションです。
前回は、こけしショップ「kokexa Go」を社員によってベータテストするために、店の入口に社員かどうかを判断するために「顔認証」を導入しました。
今回は、一般のお客様にご来店いただく前の準備として、お客様が家で使えるスキル「コケクサ会員サービス」というスキルを作りましたので、そのご紹介です。
「コケクサ会員サービス」スキルは「kokexa Go」の会員さんが「いままで買ったこけしの購入履歴を確認」できるスキルです。他、このスキルでは「こけしの入荷状況やお休みの日など、お店からのお知らせも確認」 できます。
Alexaスキルは通常はそのスキルをAlexaアプリで有効にするだけで使うことができますが、今回はスキル有効後にログイン画面をはさんで認証し、ログインした会員さんだけが使えるスキルとなっています。
→ kokexaって何? という方はこちらへ!
kokexaについてのブログや「kokexaの話」のスライドはページの最後にまとめました。
1. アカウントリンク
今回はスキル有効後にログイン画面をはさみ、ログインした会員さんだけが使えるスキルをを作りましたと最初に書きましたが、まずはどういったスキルが、「ログインした会員さんだけが使えるスキル」に該当するのかAlexaアプリの画面で確認してみたいと思います。
既にAlexaをお使いの方は、このように「アカウントのリンクが必要です。」と書かれたスキルを目にしたことがあるかと思います。このような状態のスキルが「ログインした人だけが使えるスキル」です。
この機能は「アカウントリンク」機能と呼ばれています。
参考:Alexaユーザーとシステムユーザーを関連付ける
2. ログイン画面
先程の画面で「有効にする」ボタンを押すと、ログイン画面が表示されます。今回は、ユーザーの認証にCognitoのUser Poolsを使ったので、Cognitoで作った簡易的なログイン画面が表示されています。メールアドレスとパスワードを入れて「Sign In」ボタンを押します。
3. アカウントリンク成功
認証されると以下のような「正常にリンクされました」画面が表示されます。これでアカウントリンクが成功しました。
4. ユーザーの特定
認証後は、Alexaから届くアクセストークンを元にCognitoに登録されたユーザーを特定します。LambdaのPythonのコードだと以下のようなコードになります。Cognitoのget_user関数にアクセストークンを渡してあげればOKです。
cognito = boto3.client('cognito-idp')
access_token = event['session']['user']['accessToken']
user = cognito.get_user(AccessToken=access_token)
5. 動画
百聞は一見にしかず、ということで、「コケクサ会員サービス」スキルが動いているところを動画で見てみましょう。
最初にいままでの購入履歴を確認して、その次にお店のお知らせを確認して終了する、という流れの動画になっています。
6. kokexaのグラビアコーナー
最後に、Echoにカバーを付け、こけしの小物入れを乗せた「乗せるだけkokexa」がかわいく撮れたので、載せておきますね。
7. まとめ
今回は連載「kokexa Go!」の第二弾として、購入履歴とお店からのお知らせが確認できる「コケクサ会員サービス」スキルをご紹介しました。
いまは購入履歴とお知らせの確認のみのスキルですが、ひとまずは良いスキルができたのではないでしょうか?
いや〜、Alexaスキルって本当にいいものですね!