Lambdaを使用します。全体の流れスキル作成の全体の流れとしては、以下のようになります。開発者ポータルでの作業となります。ここでは、Alexaに呼びかける発話とその際のAlexaの反応を設定していきます。Service(AWS)での作業となります。ここでは、Alexaと連携させるサービスエンドポイントの作成を行います。開発者ポータルでの作業となります。Lambdaで作成したサービスエンドポイントをAlexaに設定し、作成したスキルのテストを行うための設定を行います。Echoなどの実機でテストする方法を紹介いたします。開発者ポータルにログインしてください。ログインできたら、上部メニューから「ALEXA」を選択してください。Kitの「始める」を選択してください。画面が切り替わったら「新しいスキルを作成する」を選択してください。すると、スキルを作成する画面に切り替わります。スキルの種類は、カスタム対話モデルを選択してください。言語は、Japaneseを選択します。Alexa上でユーザーに表示されるスキルの名前になります。赤枠の部分ですね!これは、デフォルトで追加されていた「Weather」という名前のスキルです。今回はここが「Alexaが一発ギャグをスキル」になります。呼び出し名は、このスキルを起動するときにAlexaに呼びかけるワードになります。今回の場合は「アレクサ、一発ギャグを開いて」と呼びかけると、このスキルが起動します。ちなみに呼びかけるとき、語尾に「を開いて」を付けないと作成したスキルは起動しませんので、覚えておいてください。入力が完了したら、保存ボタンを押してください。すると、新しいスキルとして保存されますので、「次へ」を押してください。ここからいよいよAlexaとの対話モデルを構築していきます。JSON形式で構築もできるのですが、スキルビルダーという便利なツールが用意されていますので、こちらを使用しましょう。スキルビルダーが起動したら、Intentsの横にある「ADD」を選択してください。Intentには、Alexaに呼びかけるサンプル発話を設定します。Intent(インテント)とは、ユーザーの音声によるリクエストを満たすアクションを表します。ユーザーがどのように呼びかけるとAlexaに反応してほしいかをIntentに設定します。今回の場合だと「アレクサ、一発ギャグして」「アレクサ、一発ギャグお願い」「アレクサ、一発ギャグするんだ」と呼びかけると一発ギャグをしてほしいので、設定するサンプル発話は以下のようになります。一発ギャグして、一発ギャグお願い、一発ギャグするんだIntentの作成は以下の通りです。Amazonがあらかじめ提供しているIntentがデフォルトで設定されています。これについては、詳しくは以下をご確認ください。Model」を押してください。Buildには少しだけ時間がかかりますので、プログレス(ぐるぐる回ってるやつ)が消えるまで待ってください。Buildが完了したら、「Configuration」を押して設定画面に戻りましょう。開発者ポータルでの作業は一旦中断します。Lambdaでエンドポイントとなるfunctionを作成します。Service(AWS)にログインしてください。ログインできたら、コンソールから「Lambda」を選択してください。Lambdaを選択したら、右上の「関数の作成」を押してください。すると、関数の作成画面が開きますので、画面上部右側の「設計図」を選択してください。そのあと、検索ボックスに「Alexa」と入力し、検索結果から「alexa-skill-kit-sdk-factskill」を選択してください。次に、基本情報を設定します。「名前」には任意の関数名をつけてください。「ロール」はベーシックなもので構いませんが、念のため選択したロールにAWSLambdaBasicExecutionのポリシーがアタッチされているか確認しておいてください。次にいよいよコードを書いていきます。Kitのトリガーを選択しておいてください。トリガーを選択したら、画面下部の「追加」を押してください。コードは以下のようになります。'一発ギャグをします。私に一発ギャグをしてと言ってみてください。'新しいネタを考えておきますので、また遊んでくださいね。'新しいネタを考えておきますので、また遊んでくださいね。alexa.execute();};コードの説明を簡単に説明しておきます。LaunchRequestは、このスキルを起動させた時のAlexaの反応です。「私の一発ギャグを聴きますか?」という風になります。gyaguIntentは、サンプル発話に設定した呼びかけに対してのAlexaの反応です。「サンシャイーーン!アレクサ!イエーーーーーイ!!」となります。AMAZON.HelpIntentは、スキルの使い方をAlexaに教えてもらいたい時のAlexaの反応です。「一発ギャグをします。私に一発ギャグをしてと言ってみてください。AMAZON.CancelIntentとAMAZON.StopIntentはスキルをキャンセルさせたい時や、終了させたい時のAlexaの反応です。「新しいネタを考えておきますので、また遊んでくださいね。AMAZON.HelpIntent、AMAZON.CancelIntent、AMAZON.StopIntentに関して、詳しくは以下をご確認ください。Skillsさて、コードの入力が完了したら、「保存」を押してARNをコピーしておいてください。開発者ポータルに戻ってスキルの設定をおこないます。開発者ポータルを開いたら、左側のメニューで「設定」を選択してください。LambdaでコピーしたARNを張り付けて「次へ」を押してください。Echoなどの実機を持っていなくてもシミュレーターで作成したスキルのテストを行うことができます。すると設定通りにシミュレーターが反応がします。Lambdaでコードを書いたときのIntent名が一致しているかなどを確認してみてください。Echoなどの実機でもテストを行うことができますので、その方法を紹介しておきます。開発者ポータルを開いてください。左側メニューの「公開情報」と「プライバシーとコンプライアンス」の入力項目を埋めていきます。全項目入力しないと実機テストができないということを覚えておいてください。「公開情報」に関しては、テストをするだけで、スキルを公開しないのであれば「test」などととりあえず入力しておけばいいと思います。「画像」の設定も必須ですので設定するようにしてください。いう決まりがありますので、それぞれのサイズの画像を用意しておいてください。「プライバシーとコンプライアンス」に関しても、全項目入力してください。ここは入力というよりも選択ですね。テストのみで公開しないのであれば、「申請する」ボタンを押さずに「保存」ボタンを押してください。すると、スキルのベータテストというボタンが選択できるようになりますので、選択してください。テスターを追加する画面が開きますので、テスターのメールアドレスを入力して、「テスターの追加」「テストを開始」とボタンを押してください。すると、入力したメールアドレス宛にメールが届きます。※上の画像では既にテスターを追加していたため「テスターの更新」というボタンが表示されていますが、初めての追加する場合は「テスターの追加」と表示されています。アカウント)と同じメールアドレスになるようにしておいてください。詳しく検証できていませんが、アカウントの連携がうまくいかず実機テストできないことがありましたので、アカウントと同じメールアドレスにした方が無難かと思います。"Alexaが一発ギャグをするスキル"という同じ名前のリンクが2つあるのが確認できます。link:という方のリンクを選択してください。Alexaに遷移し、スキルのテストをするための同意確認が表示されますので、同意するを選択してください。開発者ポータルの「公開情報」を設定する項目の「サンプルフレーズ」に入力した値が表示されます。今回はテスト用に設定したので「test」と適当なものを入力しましたが、本来ならIntentのサンプル発話に設定したフレーズを入力するべきですね。(笑)今回は、クラスメソッド様の以下のブログを参考にさせていただきました。LambdaSNSでもご購読できます。TwitterでフォローするFeedlyでフォローするふっくんふっくんです。*メールアドレス(公開はされません。コメントデータの処理方法の詳細はこちらをご覧ください。