こんにちは。ITとこけしの融合を目指して活動中のこけし部 部長 坂本(@t_sakam)です。前回からはじまったAlexaに関する新連載「kokexa Go!」。
『「Amazon Go」にインスパイアされた「kokexa Go」という、レジレスこけしショップを開きたい! そのためには毎回機能を追加していかなければいけない…、はたして「kokexa Go」はできあがるのか…。』というストーリーの連載です。
※このストーリーはフィクションです。
前回は、こけしショップ「kokexa Go」を社員によってベータテストするために、店の入口に社員かどうかを判断するために「顔認証」を導入しました。
今回は、一般のお客様にご来店いただく前の準備として、お客様が家で使えるスキル「コケクサ会員サービス」というスキルを作りましたので、そのご紹介です。
「コケクサ会員サービス」スキルは「kokexa Go」の会員さんが「いままで買ったこけしの購入履歴を確認」できるスキルです。他、このスキルでは「こけしの入荷状況やお休みの日など、お店からのお知らせも確認」 できます。
Alexaスキルは通常はそのスキルをAlexaアプリで有効にするだけで使うことができますが、今回はスキル有効後にログイン画面をはさんで認証し、ログインした会員さんだけが使えるスキルとなっています。
目次
→ kokexaって何? という方はこちらへ!
kokexaについてのブログや「kokexaの話」のスライドはページの最後にまとめました。
1. アカウントリンク
今回はスキル有効後にログイン画面をはさみ、ログインした会員さんだけが使えるスキルをを作りました
と最初に書きましたが、まずはどういったスキルが、「ログインした会員さんだけが使えるスキル」に該当するのか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. 動画
百聞は一見にしかず、ということで、「コケクサ会員サービス」スキルが動いているところを動画で見てみましょう。
最初にいままでの購入履歴を確認して、その次にお店のお知らせを確認して終了する、という流れの動画になっています。
https://youtu.be/bzS_t8qjnnk
6. kokexaのグラビアコーナー
最後に、Echoにカバーを付け、こけしの小物入れを乗せた「乗せるだけkokexa」がかわいく撮れたので、載せておきますね。
7. まとめ
今回は連載「kokexa Go!」の第二弾として、購入履歴とお店からのお知らせが確認できる「コケクサ会員サービス」スキルをご紹介しました。
いまは購入履歴とお知らせの確認のみのスキルですが、ひとまずは良いスキルができたのではないでしょうか?
いや〜、Alexaスキルって本当にいいものですね!
kokexaについて
kokexaについてのブログ
http://blog.serverworks.co.jp/tech/2016/11/17/kokexa/ http://blog.serverworks.co.jp/tech/2018/02/20/alexaday2018
「kokexaの話」のスライド
https://speakerdeck.com/kokexa/kokexa-story