Alexaスキルをつくる - 4
すごい久々だ。
のテストのところ、もとのチュートリアルが新しいテスト画面に対応したようで、
それ通りにやったらうまくいった。
わたしはなぜか(どこで設定したか覚えてないけど)
呼び出し名を「うらない」にしていたので、「星占い」では呼び出せなかった。
の「星占い」っていうところがクリックできなくて、
「ビルド」の「呼び出し名」というところをクリックすると右側に出てくる。
では、久々ですがおもいだしつつ第4回をやろー
Alexaスキル開発トレーニングシリーズ 第4回 データの保存 : Alexa Blogs
Lambdaの追加部分は
'SynastryIntent': function () { if (this.attributes['sign']) { this.handler.state = states.SYNASTRYMODE; var sign = this.attributes['sign']; // DynamoDBから読み込んだデータを参照 var message = 'あなたの星座は' + sign + 'ですね。' + '相性を占いますので、お相手の星座を教えてください'; var reprompt = 'お相手の星座を教えてください'; this.emit(':ask', message, reprompt); } else { this.emit('AMAZON.HelpIntent'); } }, // スキルの中断時にもDynamoDBへのデータ保存を実行する設定 // https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs#making-skill-state-management-simpler 'SessionEndedRequest': function () { this.emit(':saveState', true); } };
かな?
対話モデルの方は丁寧にかかれているのでそれをフォローすればよさそうだが、
追加部分は
{ "name": "SynastryIntent", "slots": [], "samples": [ "相性", "相性を聞きたい", "相性が聞きたい", "相性を知りたい", "相性はどう", "相性が知りたい", "相性を教えて", "相性を占って" ] }
のようだ。
追加して、テストもOK。
しかし、DynamoDBのテーブルがみえない。。
という画面になってしまった。うーむ
上のテーブルができないところは、
結局index.jsを全部コピペで直したら解決した。
何が問題だったかは後からみる。でも下のことが原因な気がする。
次の問題があって、
まず、DBに読ませる最初の発話
ってやると、ちゃんと自分が「うお座」というのがセーブされるが、
とすると自分の星座が「相性」になってしまう。
「相性を占って」といってるので、そこが星座になってしまうようだ?
あと、これサンプルプログラムなんですけど、
この応答のせちゃうの、結構適当ですね。笑
ここまできて、なんで呼び出しを「うらない」にしたのか思い出した。
「星占い」ってやると、アレクサのもともとの機能にあるのか、
自分がつくったようにならなかったのだった。