公開スキルの場合、いくつかのビルトインインテントに対応している必要があります。インテントを定義して、コーヒーを注文する(仮想です)コーヒーショップスキルを作ってみましょう。この演習は、「初めてのスキル開発」を理解していることを前提にしています。コーヒーショップスキルの作成Alexa開発者コンソールから「スキルの作成」ボタンをクリックします。なにかスキルを開いているときには、「スキルの一覧」をクリックすると、「スキルの作成」ボタンが表示されます。スキル名に「コーヒーショップ」と入れてください。「スキルのバックエンドをホストする方法」を「Alexaがホスト」に切り替えたら、「スキルの作成」を行います。呼び出し名の確認デフォルトでスキル名と同じ「コーヒーショップ」が呼び出し名になっていますが、念のため確認します。インテントの作成まずサンプルとして作られている「HelloWorldIntent」を削除しましょう。「HelloWorldIntent」右側にあるゴミ箱ボタンをクリックします。次に、インテントの右側にある「追加」をクリックし、「カスタムインテントを作成」欄のテキストボックスに「OrderIntent」(綴りを間違わないように注意)と入力し、「カスタムインテントを作成」ボタンをクリックします。インテントの編集サンプル発話のテキストボックスに、「コーヒーをお願い」「コーヒーをください」「コーヒー」などと入力します。それぞれエンターキーを押すと確定し、テキストボックスの下にリストされます。エンターキーの押し忘れに注意。入力が終わったら、「モデルのビルド」をクリックしてください。次に、バックエンドサービスのコードを編集します。上側の「コードエディタ」タブをクリックして、赤枠の部分を変更してください。HelloWorldIntentHandlerの応答文を変更します。リクエストが発行されます。変更ができたら、「Deploy」ボタンをクリックしてください。Alexaシミュレータで、動作確認してみましょう。「テスト」タブに移動して、発話してみてください。思った通りに動きましたでしょうか。処理されるのも確認してください。セッション中でない場合、呼び出し名をつけるのを忘れないでください。「コーヒーをください」といきなり発話すると、Amazonショッピングでコーヒーを注文してしまうかもしれません。逆にセッション中に、呼び出し名をつけると、期待した動きをしないかもしれません。迷ったら「ストップ」と言ってみましょう。します)でインテントの編集をしました。一方でプログラムコードは「コードエディタ」タブで編集しました。文が対話モデルの実態となります。一部ではなく、外部のバックエンドサービスとなります。サービスを利用しています。インターフェースとしてやり取りをします。なくても、任意のサービスやプログラミングサービスを利用することができます。HTTPリクエストをカスタムスキルのバックエンドサービスに発行します。バックエンドサービスに発行されます。リクエストが発行されます。リクエストオブジェクトのタイプを参照してください。(一部を抜粋)が表示されます。これがまさに、そのインターフェースの実際のやりとりになります。~}}Alexaシミュレータは、実デバイスがなくてもテストできるというメリットのほか、このスキルI/Oが確認できるので、デバッグの助けとなります。とバックエンドサービスは、JSONでやりとりするというお話をしました。公式にサポートされています。Pythonその他の言語用のサポートライブラリーもいろいろな形で提供されています。SDK)を使っています。SDKを使ったプログラミングは、大まかに以下のような構成になります。SDKのインポートをします。利用する機能により、SDKはいくつかパッケージが用意されています。各リクエストを処理するハンドラです。関数が実際の処理を行います。この部分で、リクエストハンドラを登録します。関数は呼ばれずにスキップされます。CanHandle()関数は、リクエストタイプやインテント名などを参照して判断をします。格納されていますので、それらを参照して処理をします。