.NETラボ 勉強会 2018年7月勉強会でLTしてきたけど、5分で言い切れなかったのでここにまとめておこうと思う。
実際に開発するための資料としては、
が良く書かれているので、Hello World的なアプリを動かす場合、こちらを参考にすると良いと思います。
ということで、今回は流れだけ書いておきます。
Amazon Echo上で動作するアプリをスキルというのですが、スキル開発をやってみるだけならAmazon Echo端末が無くても、ブラウザだけで実行可能です。
以下を利用するために開発者用アカウントを作成を作成すればOK。
Alexa Skill Kit
https://developer.amazon.com/ja/alexa-skills-kit
Amazon 開発者ポータル – Amazon Developer
https://developer.amazon.com/ja
*端末はAmazon Echoなどですが、動作している音声サービス名がAlexaなので今後Alexaという名前がよく出てきます。
アプリを起動するための音声の設置や、アプリがどのように応答するのかなどの設定を行います。
Webベースなので何かソフトをダウンロードしてインストールするという流れは不要です。
また、ストアにアプリを提出するための情報の登録や、テスト、ベータテスト(実機転送)などもここから行います。
開発視点だと、Alexa Skill Kitではユーザーとどのように対話を行うかのUIを定義します。
例えば「サンプル運勢」スキルは「Alexa サンプル運勢を開いて」というユーザーの言葉によって起動するという定義をAlexa Skill Kitで行います。
起動後に「今日の運勢を教えて」という問い合わせがあればサーバーの「getTodaysFortune」という処理を呼び出す、という定義も行います。
対話によって呼び出された処理は後述するサーバー側で行います。
サーバーは自サーバーでも良いですが、最初はAWS Lambdaを使うと楽です。
プログラムを実行して、応答に対する返事を行う部分です。
先ほどの例だとgetTodaysFortuneの実装はサーバー側に記述します。
AWS Lambdaの場合はNode.jsで記述しますが、応答の形式さえ沿っていれば自サーバーで好きな言語を用いることも可能だと思います。
Node.jsの編集もWeb上で可能です。コード補完もあって簡単な編集なら全然OK。
Alexa Skill Kitとサーバー側の作業が終わったらAlexa Skill Kitでテストができます。
Alexaシミュレーターというツールが「テスト」タブにあるので、マイクで話しかけたり、マイクが無ければテキスト入力で動作を確認できます。
実機がある場合は開発用にベータテストとして実機に転送して90日間動かすことができます。
「公開」タブの「公開範囲」からベータテストを有効にします。
ベータテストを行うには認定に必要な情報を同じく「公開」タブで行う必要がありますが、実際に認定に出すまでやる必要は無いので、仮の情報でも大丈夫です。
ベータテストが有効になったら、実機に紐づけたAmazonアカウントのメールアドレスを招待先に追加します。
追加されるとメールが飛ぶので、メールに記載されたリンクからAmazon Alexaアプリ(スマフォアプリなど)を起動し、招待を受けます。
そうすると通常のスキルをAmazon Echoにインストールするのと同じ流れで、ベータテスト用のアプリがインストールできます。
以上、Alexaスキル開発の流れでした。
AWSの開発用アカウントが無効になっていた。
忘れていましたが、自分で課金されないために停止していました。再開する方法はフォームから「停止してるから開始してね」と依頼する。
エンドポイントの「デフォルトの地域」欄でError code: SkillManifestError。
私のケースではLambda側で編集していたコードを保存していなかったためでした。保存した解消。
当日利用したスライドも掲載しておきます。
前半がLTとしては余分だったなぁと反省・・・。
Please give us your valuable comment