はじめに
先日、社内のハッカソンイベントで簡単な Alexa スキル開発を経験しました。その際に少しハマったポイントを備忘も兼ねてまとめておきます。
前提
- Alexa スキル開発は初めて
- ASK CLI を使ってローカルでデプロイしながら開発
- ランタイムは nodejs で開発
ハマったポイント
ベータテストはスキルを審査に出すと使えなくなる
これは実際の Amazon Echo のような実機テストをしようとした際に少しハマりました。スキルの審査を提出してしまうと、スキル検証がパスしていてもスキルのベータテストが利用できなくなります。
審査はベータテストも完了してから実施せよということなのかなと思います。
Alexa Developer Console の GUI でスキル設定を変更した後はローカルファイルにも反映が必要
ask cli を使ってローカル環境で開発しているときに、Alexa Developer Console 上で直接スキル設定やインテントを変えてから再度 ask deploy --force という感じでデプロイすると、当然ですが Alexa Developer Console 上で加えた反映がクリアされてしまいます。
具体的には以下ファイルが更新対象でした。
- インテント設定: ロケールファイル(
ja-JP.jsonなど) - 公開用情報:
skill.json
とはいえ、Alexa Developer Console 上で編集した情報がどうやって json ファイルに反映されるかがわからなかったので、その場合は以下のような手順で更新していました。
-
ask cloneで Alexa Developer Console 上にデプロイされた状態のリポジトリをクローン - クローンしたフォルダ(
_というようなフォルダ) の中のskill.jsonとja-JP.jsonをもともとのskill.jsonとja-JP.jsonにコピペ
Alexa Developer Console の コードエディタは Alexa-hosted スキルでしか使えない
今回僕は ask new からカスタムスキルを作る形で開発したのですが、そうすると Alexa Developer Console 上のコードエディタが使えませんでした。Alexa Developer Console 上のコードエディタは、Alexa-hosted スキルであれば利用できるとのこと。
軽微な修正であれば Alexa Developer Console 上でできたら便利だなとは思っていたのですが、コードエディタが使えなかったため、結局開発はローカルで行い、ask deploy で反映するという形で進めていました。
後々調べたところ、 ASK CLI でも Alexa-hosted スキルを使いたい場合は、ask create-hosted-skill を使えば良いようです。(参考:https://developer.amazon.com/ja/docs/hosted-skills/build-a-skill-end-to-end-using-an-alexa-hosted-skill.html#askcli)
おわりに
色々手探りで Alexa スキルに取り組んだのですが、難しくもあり楽しくもありという感じでした。公式ドキュメントや動画が割と充実していたため、初見でも地道に調べながら開発は進められるのかなと思いました。