これまで何本かカスタムスキル( http://kimizuka.hatenablog.com/entry/2018/05/31/161701 )をつくってきましたが、はじめて「フラッシュブリーフィングスキル」を作ってみたので作り方をまとめておこうと思います。
フラッシュブリーフィングスキルとは
「カスタムスキル」とは違い、「呼び出し名」や「サンプル発話」を指定できず、『Alexa、フラッシュニュースを聞かせて、『Alexa、ニュースを教えて』という問いに対して答えてくれるスキルです。
今回作ったもの
毎日、平成の残り日数を教えてくれるフラッシュブリーフィングスキル、「ファイナル平成カウンター」を作りました。
平成の間にやっておきたいことがある方は是非使ってみてください。
用意するもの
- Amazon開発者ポータルのアカウント( https://developer.amazon.com )
- AWSのアカウント ( https://aws.amazon.com )
- Amazon Echo実機
実質、必須なのは、「Amazon開発者ポータルのアカウント」のみです。
僕は、「Lambda」や「API Gateway」を使いたかったので、AWSをつかいましたが、JSON(もしくはXML)を配信できるサーバがあればそちらで構いません。
Amazon Echo実機はテストの際に必要です。(シミュレータではフラッシュブリーフィングスキルはテストできません)
スキルの作り方
カスタムスキルに比べてとてもシンプルに作れます。
- カスタムエラーメッセージ
- プリアンブル
- フィード名
- コンテンツの更新頻度
- コンテンツタイプ
- コンテンツジャンル
- フィード
- フィードアイコン
の8点を設定するだけです。
たくさんあるように感じますが、すべて簡単に設定できます。
1. カスタムエラーメッセージ
エラーが起きたときに流れるメッセージです。
2. プリアンブル
フィードのコンテンツの前にAlexaが読み上げる短い紹介文です。
「提供」という言葉がかっこよかったので、「ファイナル平成カウンターが提供しています」と設定しました。
コンテンツを読み上げる前につくので、読み上げられる文章は、「ファイナル平成カウンターが提供しています。平成はあと、309日残ってます。平成最後の6月25日を悔いのないようにお過ごしください。」という感じになります。
3. フィード名
フィードの名前です。
今回はフィードがひとつだったので、スキル名ををのままフィード名にしました。
あとでフィードを増やそうと思ったりしたときに困るやつです。
4. コンテンツの更新頻度
「毎時間」、「毎日」、「毎週」から選択できます。
当然今回は「毎日」を選択肢ています。
5. コンテンツタイプ
「テキスト」と「オーディオ」が選択できます。
今回は「テキスト」です。
6. コンテンツジャンル
「ヘッドラインニュース」「ビジネス」「政治」「エンターテイメント」「テクノロジー」「ユーモア」「ライフスタイル」「スポーツ」「科学」「健康とフィットネス」「アートとカルチャー」「生産性とユーティリティ」「その他」から選択できます。
迷いましたが「ライフスタイル」を選択しました。
7. フィード
JSON(もしくはXML)を指定します。後述します。
8. フィードアイコン
512×512ピクセルの画像(PNGかJPEG)を指定します。
JSONの作り方
前項の7番、「フィード」の部分ですが、 フラッシュブリーフィングスキルAPIフィードのリファレンス に沿ったJSON(もしくはXML)が必要になります。
今回は「Lambda」と「API Gateway」をつかって、JSONを配信してみました。
{ "uid": "0146f22f-a69d-465c-8f25-de310a1faeb8", // [https://www.npmjs.com/package/uuid] をつかって作成 "updateDate": "2018-06-25T00:00:00.000Z", // 配信日の0時に設定 "titleText": "ファイナル平成カウンター", "mainText": "平成はあと、309日残ってます。平成最後の6月25日を悔いのないようにお過ごしください。" // 2019年5月1日0時までの日数を計算 }
という感じのJSONを配信しています。
ハマった点としては、updateDateを日本の日付にしようと9時間足したものを設定したら、未来の日付扱いになってしまい配信されなくなったことぐらいです。
簡単ではありますが、こんな感じです。
カスタムスキルよりも大分楽に作れました。