0

JSON-url を使用して Amazon Echo (Alexa) を使用してライトを制御するために、動作するコードを書こうとして苦労しています。多くの例を読み、さまざまな組み合わせを試しましたが、うまくいきません。起動リクエストは機能します。IntentRequest はそうではありません。リンクを変更しました。

現時点では、次のようになっています。

var http = require('http')

exports.handler = (event, context) => {

try {

      if (event.session.new) {

    console.log("NEW SESSION");
}

switch (event.request.type) {

    case "LaunchRequest":
    console.log(`LAUNCH REQUEST`);
    context.succeed(
        generateResponse(
            buildSpeechletResponse("Welcome", true),
            {}
            )
            );
    break;

    case "IntentRequest":
    console.log(`INTENT REQUEST`);

    switch(event.request.intent.name) {
        case "TurnTheLightsOn":
          var url = "http://full link";
            http.get(url, function(response){    
                var body = "";

               response.on('data', function(chunk) {
                  body += chunk;
               });

                response.on('end', function() {
               var data = JSON.parse(body);  // {"result":"ok"}
                       console.log("Got a response: ", data);



           context.succeed(
               generateResponse(
                   buildSpeechletResponse(`Ok`)
                    )
                    );
            });
    });
    }

    break;

    case "SessionEndedRequest":
    console.log(`SESSION ENDED REQUEST`);
    break;

    default:
    context.fail(`INVALID REQUEST TYPE: ${event.request.type}`);
}



} catch(error) { context.fail(`Exception: ${error}`); }
};



buildSpeechletResponse = (outputText, shouldEndSession) => {

return {
    outputSpeech: {
        type: "PlainText",
        text: outputText
    },
    shouldEndSession: shouldEndSession
    };
};

generateResponse = (speechletResponse, sessionAttributes) => {

    return {
        version: "1.0",
        sessionAttributes: sessionAttributes,
        response: speechletResponse
    };

};

インテント スキーマは次のようになります: インテント スキーマ とサービス シミュレータ: サービス シミュレータ 何を試しても、「リモート エンドポイントを呼び出せなかったか、返された応答が無効でした」というエラーが表示され続けます。

そして、この問題を解決する方法がわかりません。誰でも私を助けることができますか?よろしくお願いします!

4

0 に答える 0