もよいめも

不定期更新ものづくりブログ

Alexaスキルを開発した際のメモ書き

ユーザーの発言から色々取り出す


まずハンドル内で
const request = handlerInput.requestEnvelope.request
をして読めるようにしましょう。

request.type

そのまんまリクエストのタイプが読める。
LaunchRequestだとスキルの起動リクエスト。
IntentRequestだとインテントに入るリクエスト。

request.intent.name

入ったインテントの名前が読める。

request.intent.slots.oneiro.value

ユーザー発言から切り取られスロット(今回はoneiroというカスタムスロット)に代入された値。
これは登録した値しか入らないわけではなく、あくまでユーザーが発言した中から切り取られた値が読める。

request.intent.slots.iro(スロット名).resolutions.resolutionsPerAuthority[0].values[0].value.id

スロット(今回はiroというカスタムスロット)内に代入された値のIDが読める。

request.intent.slots.iro(スロット名).resolutions.resolutionsPerAuthority[0].values[0].value.name

スロット(今回はiroというカスタムスロット)内に代入された値の名前が読める。

request.intent.slots.iro.resolutions.resolutionsPerAuthority[0].status.code

スロット(今回はiroというカスタムスロット)内に正しい値が代入されたかが読める。
ER_SUCCESS_NO_MATCHだと正しい値が代入されていない。
ER_SUCCESS_MATCHだと正しい値が代入されている。

その他使った関数とか

Number(mozi);

文字列の変数(今回はmozi)をint型に変換する。

suuzi.length

変数の数字や文字列(今回はsuuzi)の長さを取得する。