enebularでalexaスキル その8

# 概要
enebularで、alexaスキルのwebhookを返してみた。
練習問題やってみた。

# 練習問題
九九を実装せよ。

# 方針
呼び出しは、九九
LaunchRequestで、"それぞれの段を読み上げます。"
IntentRequestで、"１の段" "いん いち が いち いん に が に ・・・"

# 写真

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/99f0dfc8-7b39-e9e5-fe53-21271c1972fc.png)


# 手順

新しいスキルを作成

1.スキルに追加するモデルを選択

- カスタムを選択

2.スキルのバックエンドリソースをホスティングする方法を選択

- ユーザー定義のプロビジョニングを選択

スキルを作成をクリック

スキルに追加するテンプレートを選択

- スクラッチで作成を選択

選択をクリック

呼び出し名の登録

- 九九

インテントの追加

- NumIntent

- " {num}の段 "

- num AMAZON.Number

サービスのエンドポイントの種類

- https https://***.herokuapp.com/

# フロー

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/3af3ef22-1705-00d5-e1cf-9e2b0298828d.png)


```
[{"id":"f0a907cc.af4218","type":"http in","z":"da568283.b34a7","name":"","url":"/","method":"post","upload":false,"swaggerDoc":"","x":130,"y":140,"wires":[["2a34f775.7fda08"]]},{"id":"2a34f775.7fda08","type":"switch","z":"da568283.b34a7","name":"request.type 判定","property":"payload.request.type","propertyType":"msg","rules":[{"t":"eq","v":"LaunchRequest","vt":"str"},{"t":"eq","v":"IntentRequest","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":270,"y":80,"wires":[["cfd360ad.7b27c"],["c12a09a5.1fa5b8"]]},{"id":"d06f833d.ef44f","type":"http response","z":"da568283.b34a7","name":"","statusCode":"","headers":{},"x":750,"y":100,"wires":[]},{"id":"f37951a4.334fe","type":"debug","z":"da568283.b34a7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":730,"y":260,"wires":[]},{"id":"cfd360ad.7b27c","type":"template","z":"da568283.b34a7","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\n  \"version\": \"1.0\",\n  \"sessionAttributes\": {\n  },\n  \"response\": {\n    \"outputSpeech\": {\n      \"type\": \"PlainText\",\n      \"text\": \"それぞれの段を読み上げます。\"\n    },\n    \"card\": {\n      \"type\": \"Simple\",\n      \"title\": \"九九\",\n      \"content\": \"それぞれの段を読み上げます。\"\n    },\n    \"reprompt\": {\n      \"outputSpeech\": {\n        \"type\": \"PlainText\",\n        \"text\": \"他にも質問はありますか？\"\n      }\n    },\n    \"shouldEndSession\": false\n  }\n}\n","x":450,"y":40,"wires":[["a3f5d1d3.48456"]]},{"id":"a3f5d1d3.48456","type":"change","z":"da568283.b34a7","name":"Set Headers","rules":[{"t":"set","p":"headers","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"headers.content-type","pt":"msg","to":"application/json","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":160,"wires":[["d06f833d.ef44f","f37951a4.334fe"]]},{"id":"5d09dbfd.0d44d4","type":"template","z":"da568283.b34a7","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\n  \"version\": \"1.0\",\n  \"sessionAttributes\": {\n  },\n  \"response\": {\n    \"outputSpeech\": {\n      \"type\": \"PlainText\",\n      \"text\": \"{{o}}\"\n    },\n    \"card\": {\n      \"type\": \"Simple\",\n      \"title\": \"九九\",\n      \"content\": \"{{o}}\"\n    },\n    \"reprompt\": {\n      \"outputSpeech\": {\n        \"type\": \"PlainText\",\n        \"text\": \"他にも質問はありますか？\"\n      }\n    },\n    \"shouldEndSession\": false\n  }\n}\n","x":430,"y":240,"wires":[["a3f5d1d3.48456"]]},{"id":"c12a09a5.1fa5b8","type":"function","z":"da568283.b34a7","name":"switch","func":"var num = msg.payload.request.intent.slots.num.value;\nswitch(parseInt(num))\n{\ncase 1:\n\tmsg.o = \"いん いち が いち いん に が に いん さん が さん いん し が し いん ご が ご いん ろく が ろく いん しち が しち いん はち が はち いん く が く\";\nbreak;\ncase 2:\n\tmsg.o = \"に いち が に に にん が し に さん が ろく に し が はち に ご じゅう に ろく じゅうに に しち じゅうし に はち じゅうろく に く じゅうはち\";\nbreak;\ncase 3:\n\tmsg.o = \"さん いち が さん さん に が ろく さ ざん が く さん し じゅうに さん ご じゅうご さぶ ろく じゅうはち さん しち にじゅういち さん ぱ にじゅうし さん く にじゅうしち\";\nbreak;  \ncase 4:\n\tmsg.o = \"し いち が し し に が はち し さん じゅうに し し じゅうろく し ご にじゅう し ろく にじゅうし し しち にじゅうはち し は さんじゅうに し く さんじゅうろく\";\nbreak;\ncase 5:\n\tmsg.o = \"ご いち が ご ご に じゅう ご さん じゅうご ご し にじゅう ご ご にじゅうご ご ろく さんじゅう ご しち さんじゅうご ご は しじゅう ごっ く しじゅうご\";\nbreak;\ncase 6:\n\tmsg.o = \"ろく いち が ろく ろく に じゅうに ろく さん じゅうはち ろく し にじゅうし ろく ご さんじゅう ろく ろく さんじゅうろく ろく しち しじゅうに ろく は しじゅうはち ろっ く ごじゅうし\";\nbreak;  \ncase 7:\n\tmsg.o = \"しち いち が しち しち に じゅうし しち さん にじゅういち しち し にじゅうはち しち ご さんじゅうご しち ろく しじゅうに しち しち しじゅうく しち は ごじゅうろく しち く ろくじゅうさん\";\nbreak;\ncase 8:\n\tmsg.o = \"はち いち が はち はち に じゅうろく はっ さん にじゅうし はち し さんじゅうに はち ご しじゅう はち ろく しじゅうはち はち しち ごじゅうろく はっ ぱ ろくじゅうし はっ く しちじゅうに\";\nbreak;\ncase 9:\n\tmsg.o = \"く いち が く く に じゅうはち く さん にじゅうしち く し さんじゅうろく く ご しじゅうご く ろく ごじゅうし く しち ろくじゅうさん く は しちじゅうに く く はちじゅういち\";\nbreak;  \ndefault:\n\tmsg.o = \"いん いち が いち いん に が に いん さん が さん いん し が し いん ご が ご いん ろく が ろく いん しち が しち いん はち が はち いん く が く\";\n}\nreturn msg;\n\n\n","outputs":1,"noerr":0,"x":270,"y":240,"wires":[["5d09dbfd.0d44d4"]]}]
```

以上。