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
};
};
インテント スキーマは次のようになります: インテント スキーマ とサービス シミュレータ: サービス シミュレータ 何を試しても、「リモート エンドポイントを呼び出せなかったか、返された応答が無効でした」というエラーが表示され続けます。
そして、この問題を解決する方法がわかりません。誰でも私を助けることができますか?よろしくお願いします!