5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

初めての簡単な Alexa スキル開発でハマったこと

Last updated at Posted at 2019-10-26

はじめに

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

参考

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?