はじめに
先日、社内のハッカソンイベントで簡単な 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 スキルに取り組んだのですが、難しくもあり楽しくもありという感じでした。公式ドキュメントや動画が割と充実していたため、初見でも地道に調べながら開発は進められるのかなと思いました。