haben seit 2 Tagen verschiedene Routen gehen und kann es nicht herausfinden. Vielleicht kann jemand meine Probleme beleuchten. Ich versuche, einen Botserver zu betreiben, der sich mit mehreren Plattformen verbindet und schon ungefähr 5 hat.Amazon Alexa, Alexa-App und Middleware
Ich versuche jetzt auch Alexa zu integrieren. Ich sehe, dass Alexa-Anfragen auf meinen Server kommen (Alexa-Skill und Endpunkt-Konfiguration sind korrekt), aber das hat auch einige Zeit gedauert, da Amazon anscheinend nur Traffic an Port 443 sendet , tut aber nichts ... nett! Gelöst durch Hinzufügen eines Lastenausgleichsmoduls mit Portweiterleitung.
Auf die eigentliche Frage. Ich versuche, alexa-App als meinen Rahmen aus dem folgende Beispiel zu verwenden:
var express = require("express");
var alexa = require("alexa-app");
var express_app = express();
var app = new alexa.app("sample");
app.intent("number", {
"slots": { "number": "AMAZON.NUMBER" },
"utterances": ["say the number {-|number}"]
},
function(request, response) {
var number = request.slot("number");
response.say("You asked for the number " + number);
}
);
// setup the alexa app and attach it to express before anything else
app.express({ expressApp: express_app });
// now POST calls to /sample in express will be handled by the app.request() function
// GET calls will not be handled
// from here on, you can setup any other express routes or middleware as normal
Der Teil, den ich nicht herausfinden kann, ist, wie diese zu verwenden, wenn ich mein Setup Express-Server in einer Datei und dann will verwenden Sie die Middleware-Funktion zum Einrichten meiner Zuhörer in der zweiten Datei ... so etwas wie:
app.js:
var express = require("express");
var express_app = express();
https.createServer({
key: fs.readFileSync(key),
cert: fs.readFileSync(cert),
ca: fs.readFileSync(ca)
}, app).listen(port, function() {
console.log("http: api server listening on port " + port);
});
app.use('/alexa', controller.Bot.Messenger.Listener.botMiddleWare());
listener.js:
var alexa = require("alexa-app");
var app = new alexa.app("sample");
bot.botMiddleWare = function botMiddleWare() {
return <return function to connect to express in app.js>;
}
Danke für jede Hilfe oder Hinweise!
Ich bin nicht zu alexa-App gebunden Wenn Leute andere Bibliotheken haben, die dazu verwendet werden können, bin ich sehr offen für Vorschläge. – lleto
Am Ende habe ich es geschafft, das funktioniert basierend auf Express und Alexa-App. – lleto
könnten Sie Ihre Lösung als Antwort auf diese Frage veröffentlichen? –