AmazonEcho:オンラインセミナーAlexa道場・第13回(9/13)「アカウントリンクで既存のサービスと連携するスキルを作ろう」が開催されました!

おはようございます!!

これまでAmazon Echoプログラミングセミナー
Alexaウェブセミナー「Alexa道場」を紹介させていただいてます。

Amazon Echo他に搭載されているAlexaのオンラインWebセミナーとTシャツプレゼントキャンペーンの紹介です。早速セミナーに申し込んでみました!!
3/23開催のAlexaウェブセミナー「Alexa道場」を受講しました。3/27にも同内容で開催されるようですので、よかったら受講くださいね!
Alexa道場の第3回「音声ユーザーインターフェースをデザインしよう」を受講しましたが、トラブルがあった為簡単なレポートとトラブルの内容報告です。
Alexa道場の第4回「Node.jsを使ってAlexaスキルを作ろう」を受講しました。前回との2回で作業しただけで動くようになりましたが、言われたとおりにしただけなのですが楽しいですね!!
Alexa道場の第5回「スロットを使って発話内の可変文字列を取得しよう」が開催されました。今回は欠席となりましたが、簡単に紹介させていただきます。
Alexa道場の第6回「ユーザーと対話するマルチターンのスキルを作ろう」が開催されましたので、簡単に紹介させていただきます。
Alexa道場の第7回「スキルの公開申請と審査について知ろう」が開催されましたので、簡単に紹介させていただきます。
Alexa道場の第8回「DynamoDBを使って前回の会話内容を覚えているスキルを作ろう」が開催されましたので、簡単に紹介させていただきます。
Alexa道場の第9回「ASK SDK for Node.js Version 2」が開催されましたので、簡単に紹介させていただきます。
Alexa道場の第10回「Echo Spotに対応したスキルを作ろう」が開催されましたので、簡単に紹介させていただきます。「Echo Spot対応スキル」ということで楽しみだったのですが、私にはかなり難解でした。
Alexa道場の第11回「フラッシュブリーフィングスキルを作ろう」が開催されましたので、簡単に紹介させていただきます。簡単に作れるのは驚きでしたが、大きな壁もあることがわかりました。
Alexa道場の第12回「Alexa Voice Service(AVS)の概要について学ぼう」が開催されましたので、簡単に紹介させていただきます。Alexaを組み込んだ機器の話が面白かったです。

これまで12回開催(1,2は、ほぼ同内容)され、昨日(9/13)が13回目でした。
今回も定番の木曜の昼12時開催でした。

昨日もリアルタイムで受講できましたので、簡単に紹介させていただきます。
(※ 画面コピーはあくまでも動画の一部です。見にくい部分もあると思いますが、御了承ください。)

第13回Alexa道場:「アカウントリンクで既存のサービスと連携するスキルを作ろう」

https://build.amazonalexadev.com/alexadojo013-web-reg.html

昨日9月13日(木)12:00 – 12:40に開催されました。


YouTubeにアップされた公式動画です。

・・・まだみたいなので、アップされ次第リンクを貼らせていただきます。
(22:45更新)
アップされてましたのでリンクを貼らせていただきました。

本編「アカウントリンクで既存のサービスと連携するスキルを作ろう」

アカウントリンクは、既存のサービスに対してAlexaから利用する仕組みだそうです。


そういえば、先日予習も兼ねてこんな記事を書きました。

今日はAmazon Echoのアカウントリンクの話です。大変便利な反面、使い方に注意する必要はありそうですね。

紹介させていただいたのは大手サイトのスキルだったのですが、根底にはこんな仕組みがあったんですね・・・

スキルの例

JapanTaxi(こちら)
(※ ’18 9/13現在なぜか開きません)(※ ’18 9/27 URLが変更になっていたので修正しました)


既にスマホなどを使ってログインしてサービスを利用しているのを、Alexaから利用する。(Amazonのアカウントとリンクする)

アカウントリンクの仕組み

AlexaOAuth2.0(オーオース2.0)に対応している。
一度アクセスしたらアクセストークンを渡されるので、次回からはAlexaがこれを使ってアクセスする。(このトークンをもらう仕組みがOAuth2.0


取得方法は2つ。

  • Unplicit Grant
    ・・・ ログインしただけで簡単にトークンをくれる
    ・・・ トークン期限切れ後は手動
  • Authorization Code Grant
    ・・・ 別に認可コードガ必要で、セキュリティ強化されている
    ・・・ トークン期限切れ後は自動でできるオプションあり

ユーザーによるスキルのアカウントリンク

アカウントリンクの仕組み(手順)
スキルを有効化する際に要求される場合もあれば、使っている最中に促される場合もあるとのことです。(その場合はホームカードにリンクが表示される)

アカウントリンクの設定とコーディングDEMO

まず、内容の説明です。

使うのは、よくある認証サービス

・・・の中から、Login with Amazon(こちら)を使用。


ログインするユーザーの名前を取得させる。

ここからは、あらかじめ録画されたデモ動画になりました。

デモ動画

AccountLinkTestというシンプルなスキル
リンクして!とテストして!だけ

LambdaはVer2.0のask-sdk-coreを使用

初期状態では「名前無しさん、こんにちわ!」と返すだけ。

ユーザーIDのみ送られている。
(この後の変更でアクセストークンが追加される)

Develper Consoleのアプリ&サービスから、Amazonでログイン。
これでLogin with Amazonにはいる。
ここから新しくセキュリティプロファイルを作る。

Client IDCloent Secretをコピーしておく。

スキルビルダーに戻り、セキュリティプロバイダー情報の
左下のアカウントリンクを開きONにする。
Auth Code Grantを選択し、URLの設定などを入力する。

Login with Amazonの左下にAuthrization Grant Options
Authrization Code Grantをクリックし、開いた画面を下へ

Authrization Requestをクリック

これがログイン画面を出すURLなので、
これをセキュリティプロバイダー情報のウインドウにコピペ!

同様にAccess Token RequestのURIもコピペ!

CLIENT ID,CLIENT SECRET
先程コピーしておいたものをペースト!

他は動画の指示どおりに(大変です(泣))
あっ、下にあるリダイレクト先のURLはコピーですね。
これで保存です。

今度は、Login with AmazonのWeb Settinng。

先程コピーしておいたURL3つをペースト!して保存。

今度はLamdaのコード書き換え

iPhoneを使ってのテスト
実際アクセス許可してからスキルを動かす。

テストすると、今度はaccessTalkenの文字列が入っている。
これでAmazonのアカウントにアクセスできるようになったので、
Lamdaにコードを追加。

accessTalkenがあったらユーザー名を取得するように変更。
getusernameaccessTalkenを渡してnameをもらう。

ようやくユーザー名が返ってきました!

その他

Amazonのユーザーの情報を取りたいだけなら、アカウントリンクを使わなくても、最近できたカスタマープロファイルAPIを使う方法があるようです。(Alexaから情報を取れる)

Q&A

Q1:「アクセストークンは、スキルを起動する度に必要ですか?」
A1:「1回ログインする時に発行されるだけです。(期限が切れるまで)

Q2:「Auth2のサーバーはどうやって建てるのですか?」
A2:「仕様が公開されてますので、自分で建てるということもできますし、
業務システム等のサーバーで販売されているものもあります。」

気になるスキルコーナー

今回はありませんでした。

お知らせ

Alexaスキルアワード2018
ファイナルステージイベント(決勝審査会)(こちら

9/29(土)に目黒で開催。誰でも参加できるようです。
お祭りだと思って遊びに来てください!とのことでした。

Alexa ハンズオントレーニング(こちら

今日(9/14)大阪でもありますね。行きたかったのですが・・・

・Tシャツ+EchoSpotキャンペーン(こちら

9月の新デザインですね。
今月からはEcho Spotがもらえるようです。(ただし300ユーザー…)

次回 9/27(木)12:00~12:40
第14回「ASK CLI を使ってスキル開発を効率化しよう」

コマンドラインインターフェースによる開発だそうです。
サードパーティのNode.jsのライブラリを使うようになると、避けられないテクニックだそうです。

2週間後の木曜の昼ですね。

登録ページこちらですね。

・アンケート

フォームは前回と同じでした。

以上です。

今回は難解でしたが、1つのスキルを作る際に1度だけやってしまえば終わりなので、手順さえ間違わなければなんとかなるかと・・・甘いか??

ただ、プロのプログラマーさんで無い限り、素人プログラマーはさほど使うことは無いだろうと感じました。

でも、うまく使えば・・・いや、やっぱり難しいですね。
個人情報保護に関係するところですので、失敗は許されません。

(おわり)

ブログ村

↓ この記事よかったよ!!という方はクリックお願いいたします。
ブログランキング・にほんブログ村へ
にほんブログ村

人気ブログランキング

↓ この記事よかったよ!!という方はクリックお願いいたします。

人気ブログランキング

シェアする

  • このエントリーをはてなブックマークに追加

フォローする