月別アーカイブ: 2021年9月

Alexa Skills Kitコマンドラインインターフェースに苦戦中

Alexa Skills Kitコマンドラインインターフェース(ASK CLI)を使おうとしたところ、予想以上に手こずってしまったのでメモ。なお、解決はしてない…

まずは公式手順どおりwindows-build-toolsをインストールできなくてしょんぼり。

■ 使用環境 Windows 11

npm install -g --production windows-build-tools

これを実行すると

Status from the installers:
---------- Visual Studio Build Tools ----------
Still waiting for installer log file...
------------------- Python --------------------
Successfully installed Python 2.7

で止まってしまう。

というわけでvs2015のオプションを追加したところサクッとインストール完了。

npm install -g --production windows-build-tools --vs2015
Downloading BuildTools_Full.exe
[============================================>] 100.0% of 3.29 MB (3.29 MB/s)
Downloaded BuildTools_Full.exe. Saved to C:\Users\hoge\.windows-build-tools\BuildTools_Full.exe.

Starting installation...
Launched installers, now waiting for them to finish.
This will likely take some time - please be patient!

Status from the installers:
---------- Visual Studio Build Tools ----------
Successfully installed Visual Studio Build Tools.
------------------- Python --------------------
Successfully installed Python 2.7

Now configuring the Visual Studio Build Tools and Python...

All done!

+ windows-build-tools@5.2.2
updated 1 package in 44.74s

このあと

npm install -g ask-cli 
ask configure
ask --version
2.24.1

で設定完了。

ここからは本来やりたいスキルマニフェストの修正。

ask smapi get-skill-manifest -s amzn1.ask.skill.xxxxx -g development > skill.json

でマニフェストを取得し修正してアップロード。

ask smapi update-skill-manifest -s amzn1.ask.skill.xxxxx -g development --manifest "file:skill.json"

がServer Error 400であげられない…

"response": {
      "message": "Request is not valid.",
      "violations": [
        {
          "code": "INVALID_REQUEST_PARAMETER",
          "message": "Parsing error due to invalid body.",
          "validationDetails": {
            "originalInstance": {
              "type": "BODY"
            },
            "reason": {
              "type": "MALFORMED_INPUT"
            }
          }
        }
      ]
    }

海外サイトとか見ても同じ罠にはまってる人がいて、解決策としては file: で指定してやれば解決したよーって流れなのにうまくいかず…

file:絶対PATH、相対PATHどっちでも問題ないようだけど、どっちで試してもダメ。”$(type skill.json)” もダメ。

マニフェストファイルはget-skill-manifestで落としてきたものをそのまま書き戻してもダメ。

さて、困った…