おはようございます!!
昨日はプログラミングの日でした。
毎回毎回、よくハマリますが、ちょこっと書かせていただきます。。
7/1(日)Alexa道場 第6回(5/10分)の復習を行いました。
ビルトインインテントとセッションアトリビュートのところでした。
お客さんのオーダーに対して「砂糖はいりますか?」と聞き返す際に、既にオーダーされているメニューと個数を一緒に送り、答えてもらった砂糖の情報と共に再度受け取って復唱するというところです。
Visual Studio Codeでサンプルコード表示の文字化け
今回のサンプルコードはSample4.jsというJavaScriptファイルだったのですが、自分が打ち込んだコードと比較する為に読み込ませると文字化けしてしまいました。
ちゃんと使い方を覚えておくべきなのですが、その都度探すタイプなので・・・(汗)
なんとか見つかりましたのが、右下のUTF-8部分をクリックする方法です。
ちょっと面倒ですね。自動でやってくれる方法もあるかも?
あと、このエディターで2画面表示もできました。
左に自分のコード、右にサンプルコードを開いて、動画を見ながら修正していくとわかりやすいですね。
ビルトインインテントでハマリました。
実は、今回コードを修正する際に、遊び心で博多弁に変えました。
一度は骨を埋めるつもりで過ごした懐かしい場所の言葉だったので、うきうきだったのですが、その後呪われることになりました。(言葉自体は全く関係無かったのですが・・・)
出来上がったコードを貼り付けて動作させてみたのですが、なぜかこんな状態になりました。
「砂糖は いると?」と聞かれて「はい」と答えても「いいえ」と答えても受け付けてくれないのです。(※ ちなみに返事部分は面倒なので標準語のままです)
JSONのやりとりを見ても、毎回OrdetIntentが動いているだけで意味がわかりません。
本来なら「AMAZON.YesIntent」「AMAZON.NoIntent」が返されるハズなのですが・・・
動画をくまなく見なおしてもわかりません。
どうしようもなくなったので、サンプルコードを貼り付けてみましたが、これでも変わりません。
そうなると、原因はインテント??・・・と思って設定画面をじっと見てみました。
ビルトインインテントのところがあるのですが、ここに「AMAZON.YesIntent」「AMAZON.NoIntent」が含まれてないんです。
とりあえず、追加してみました。
はい、追加できました。これでやってみます。
はい!バッチリ動きました。はいでもいいえでも問題なく動きます。
そうなると考えられるのはいくつかあります。
- 既に、過去のセミナーで「AMAZON.YesIntent」「AMAZON.NoIntent」を定義する事になっていた。
- 当時と仕様が変わって、今は定義する必要があるようになった。
- Alexa道場動画での説明忘れ。(口頭で追加するように説明されていたかも?)
ちょっと時間も無いので、後日確認します。
まあ、動けばよかということで・・・
以上です。
毎回毎回よくハマりますが、確実に前に進んでいってる・・・でしょう。
(おわり)