question

sdokgy avatar image
sdokgy asked ·

SpeakItemを使うと再プロンプトが行われない

お世話になっております。

このリファレンスによれば shouldEndSession が false かつ、再プロンプトが設定されている場合は、再プロンプトが行われるようですが、Echo Spot で確認したところ行われませんでした。

スキルIDは amzn1.ask.skill.6ecebf88-6319-4dc7-b1b0-6e1429eee3cf です。

以下、コード(抜粋)です。

return handlerInput.responseBuilder
    .addDirective({
        type: 'Alexa.Presentation.APL.RenderDocument',
        version: '1.0',
        token: 'Token',
        document: {
            "type": "APL",
            "version": "1.0",
            "mainTemplate": {
                "parameters": [
                    "payload"
                ],
                "item": {
                    "type": "Container",
                    "items": [
                        {
                            "type": "Image",
                            "source": "url",
                            "scale": "best-fill",
                            "width": "100vw",
                            "height": "100vh"
                        },
                        {
                            "type": "Text",
                            "id": "testSpeak",
                            "speech": "${payload.testData.properties.testSpeech}"
                        }
                    ]
                }
            }
        },
        datasources: {
            "testData": {
                "type": "object",
                "properties": {
                    "testText": "いらっしゃいませ"
                },
                "transformers": [
                    {
                        "inputPath": "testText",
                        "outputName": "testSpeech",
                        "transformer": "ssmlToSpeech"
                    }
                ]
            }
        }
    })
    .addDirective({
        "type": "Alexa.Presentation.APL.ExecuteCommands",
        "token": "Token",
        "commands": [
            {
                "type": "SpeakItem", "componentId": "testSpeak"
            }
        ]
    })
    .reprompt('ご注文はいかがなさいますか?')
    .withShouldEndSession(false)
    .getResponse();

よろしくお願いします。

alexa skills kitapl
10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Tsuneki@Amazon avatar image
Tsuneki@Amazon answered ·

ご投稿ありがとうございます。

SpeakItemを利用した場合でもrepromptは動作致します。

問題の切り分けのため、skill-sample-nodejs-space-explorerサンプルで同様に問題が発生するかテストいただけますでしょうか?

よろしくお願いいたします。

2 comments
10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

申し訳ございません。そちらのサンプルで SpeakItem と reprompt が同時に行われているレスポンスが見つけられなかったのですが・・・(見逃していたら申し訳ないです)。
こちらで launchRequestHandler.js に reprompt を追加してみましたが、やはり動作致しませんでした。

お手数ですが、ご確認よろしくお願いします。

0 Likes 0 ·

どのようにコードを追加されたか共有いただけますでしょうか?

こちらの環境では、LaunchRequestHandler.jsに以下の通り.repromptを追加したところ、日本語スキルにて画面遷移後に再プロンプトが行われました。(Echo spot, Echo showにて確認)。

      return (
        handlerInput.responseBuilder
          .addDirective(SolarSystemDirective())
          .addDirective({
            type: "Alexa.Presentation.APL.ExecuteCommands",
            token: "splash-screen",
            commands: [
              {
                type: "SpeakItem",
                componentId: "splashScroller",
                highlightMode: "line",
                align: "center",
                delay: 2000
              }
            ]
          })
          .speak(
            "Welcome "
          )
          .reprompt("テスト")
          // .prompt('How are things?')
          .getResponse()
      );
0 Likes 0 ·