逆引きASK CLI:スキルの呼び出し名を変更したい

Alexaスキル開発

こんにちは、ハルアキです。

Alexaのスキル開発をしているとスキルの呼び出し名を変更したくなることありますよね。
スキルの申請をした時に呼び出し名がNGというケースもあるかもしれません。

今回はask cli でスキル開発をしている時にスキルの呼び出し名を変更する方法をご紹介します。

ソースコード上で呼び出し名を変更する

Alexaスキルのソースコード上で呼び出し名を変更するには以下のファイルを変更します。

skill-package\interactionModels\custom\ja-JP.json

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "鉄道クイズ", <=* ココを変更
・・・

スキルの呼び出し名に反映させる

ソースコードの呼び出し名を変えただけでは実際のスキルには反映されていません。
ask cli のコマンドで反映させましょう。方法は2つあります。

スキル全体をデプロイする

スキル全体をデプロイすると呼び出し名の変更も反映されます。
スキルのプロジェクトフォルダに入って↓を実行すればOKです。

$ ask deploy

お手軽ではありますが、lamdaのコードのアップロードなど時間がかかる場合があります。スキルの呼び出し名だけを更新したい場合は別の方法もあります。

対話モデルのみ更新する

スキルの呼び出し名は対話モデルの中に含まれているので、対話モデルを更新することでスキルの呼び出し名を変更することができます。

使用するコマンドの構文は↓になっています。

$ ask smapi set-interaction-model [--skill-id | -s <スキルID>]
                                  [--stage | -g <ステージ>]
                                  [--locale | -l <ロケール>]
                                  [--interaction-model <対話モデル>]
                                  [--if-match <一致>]
                                  [--profile | -p <プロファイル>]
                                  [--debug]

必須項目はスキルID、ステージ、ロケール、対話モデル です。
対話モデルはfile:を使ってファイルを指定することができます。
↓はskill-package\interactionModels\custom に入って実行する場合の例です。

–debug は必須ではありませんが、指定しておくと更新に使用した対話モデルをコンソールに出力してくれるので、確認のために指定することをお勧めします。

$ ask smapi set-interaction-model --skill-id amzn1.ask.skill.**** `
--stage development `
--locale ja-JP `
--interaction-model file:./ja-JP.json `
--debug 

更新したら、正しく反映されているか Alexa Developer Console上で確認しましょう。

参考:コンソール上での変更をソースコードに反映させる

逆にAlexa Developer Console上でスキルの呼び出し名を変更した場合はどのようにソースコードに反映すればよいでしょう。

ソースコードの該当の場所を同じように更新するか、↓のコマンドで対話モデルを取得すればOKです。
ただしPowerShellだと日本語が文字化けしてしまうのでコマンドプロンプトで実行しましょう。

$ ask smapi get-interaction-model --skill-id amzn1.ask.skill.**** ^
--stage development ^
--locale ja-JP ^
> ja-JP.json

まとめ

ask cli を使ってスキルの呼び出し名を変更する方法をご紹介しました。

smapiのコマンドはあまり使う機会はないかもしれませんが覚えておくと便利だと思います。

この記事がみなさんの助けになれば幸いです。
それでは、今日も素敵なアレクサライフを!

コメント

タイトルとURLをコピーしました