「AlexaでSkillを作ってみよう、その1」からの続きです。
https://qiita.com/sanoh/items/26014808186cfd8f95f5
サーバーとの連携:今回はLambdaを使用します。
■Setp6:Lambda作成
コンソールにログインしてください。
https://aws.amazon.com/jp/
この中に「Lambda」がありますので、選択します。
の画面が現れたら「関数の作成」をします。
関数の作成には「設計図」を選択すると、下にいろいろと出てきますので「Alexa-skill-kit-sdk-factskill」を選択してください。
名前は今回は暫定的に「foodTest01」としロールは「既存のロールを選択」既存のロールは「lambda_basic_executuin」で
下の穂に「関数の作成」ボタンがありますので、そこで作成をします。
■Step7:Alexa Skills Kit の設定
「Alexa Skulls Kit」を選択すると、トリガーの設定があらわれますので、スキルIDを設定します。
このすきるIDに関しては別のブラウザで「AlexaでSkillを作ってみよう、その1」で使用したAlexa Skills Kit にアクセスします。
「エンドポイント」の「AWS LambdaのARN」を選択すると、この画面になるので、ここの現れた スキルID をLambdaの設定します。
「追加」を押して設定できます、これでます、AlexaSkillsKitからLambdaへの繋がりができました、こんどは逆に
LambdaからAlexaSkillsKitの繋がりを設定します。
まずは「保存」をしたあとにARNとかかれた部分をコピーします。
さきほどのAlexaSkillsKitのデフォルトの地域に、ARNの部分をコピーし、最後「エンドポイントの保存」を押してください。
これで、双方向の通信が可能になりました。
■Setp8:Node.jsの作成。
「foodTest01」を選択するとしたに関数コードが現れます。
今回は
'use strict';
var Alexa = require('alexa-sdk');
var APP_ID = undefined;
var handlers = {
'LaunchRequest': function () {
this.emit(':ask', 'どうしましたか', 'どうしましたか');
},
'commandProc': function () {
var food = this.event.request.intent.slots.food.value;
var feel = this.event.request.intent.slots.feel.value;
this.emit(':tell', '私も'+food+'は'+feel+'です');
},
};
exports.handler = function (event, context, callback) {
const alexa = Alexa.handler(event, context, callback);
alexa.APP_ID = APP_ID;
alexa.registerHandlers(handlers);
alexa.execute();
};
とします。
■Step9:プログラムのテスト
上の「テストイベントの選択」をまず、します。
イベントテンプレートを「Amazon Alexa Starts Session」を選択
イベント名はとりあえず「StartTest」として「作成」ボタンをおします。
「テスト」ボタンをおして、実行結果:成功がでればOKです。
■Step10:動作確認
AlexaSkillsKitに戻り、「テスト」を選択します。
そして「開発中」に設定することで、ブラウザ上で、Alexaのテストができます。
最初「食べ物を起動して」と入力し、スキルを起動させたあとに「スイカが好きです」と入力すればAlexaが「私もスイカは好きです」とかえしてくれます。