2017-03-12 3 views
2

Ich habe einen Node.JS-Bot auf AWS EC2 gehostet, mit einem gültigen Comodo-SSL-Zertifikat, das in Chrome/Firefox/Safari funktioniert, und ich habe einen Bot im Bot-Framework für meinen Endpunkt konfiguriert.Was könnte verhindern, dass ein EC2-gehosteter Bot auf Nachrichten im Microsoft Bot Framework antwortet?

Wenn ich die Bot-Framework-Konsole bei https://dev.botframework.com starte, kann ich auf die Schaltfläche "Test" klicken und es heißt "Akzeptiert". Ich kann auch eine Nachricht im eingebetteten Webchat senden, und die Anmeldung an meinem Bot auf AWS zeigt an, dass die Nachricht empfangen wird und eine Nachricht mit einem Aufruf von session.send() zurückgesendet wird, aber die Antwortnachricht wird nie angezeigt zurück im Webchat. Es gibt keine Fehler, die auf der Serverseite oder im Bot-Framework-Fehlerbetrachter protokolliert werden, die Nachricht scheint einfach stillgelegt zu werden. Ich habe einen Skype-Kanal hinzugefügt und bekomme genau das gleiche Verhalten in Skype.

Wenn ich denselben Code für eine Azure Web App bereitstelle, funktioniert alles in beide Richtungen.

Ich bin total fest ... Ich kann nicht herausfinden, was die Rückmeldung verhindern könnte zurückkommen, und ich kann nicht sehen, welche Schritte als nächstes zur Fehlerbehebung zu nehmen. Aus den Dokumenten geht nicht hervor, wie eine Nachricht an das Framework zurückgeschickt wird. Gibt es einen bestimmten Host/IP/Port, den ich von EC2 aus untersuchen sollte, um festzustellen, ob etwas im Weg ist? In meiner AWS-Sicherheitsgruppe gibt es keine ausgehenden Regeln, die eine Verbindung verhindern würden, z. "telnet directline.botframework.com 80" ist erfolgreich.

Antwort

0

Es stellt sich also heraus, dass das Problem darin besteht, dass ich bei der Umstellung auf EC2 die App-ID und das Passwort für das Bot-Framework nicht festlegen konnte (ich liefere sie als Umgebungsvariablen). Die Angabe eines nicht definierten Werts für die Parameter "appId" und "appPassword" der Map für den ChatConnector-Konstruktor ist eine gültige Eingabe: Es erscheint dem Connector so, als ob keine Werte festgelegt wurden, und der Connector wechselt in den Testmodus und funktioniert problemlos Emulator.

Aus irgendeinem Grund meldet die Bot-Framework-Konsole (unter https://dev.botframework.com/bots) keinen Fehler, wenn ein Bot eine Nachricht ohne Authentifizierung an das Framework sendet, und aus irgendeinem Grund zeigt die "Verbindung zu Ihrem Bot testen" an. Akzeptiert "ohne Authentifizierung. Ich habe versucht mit einer ungültigen appId und appPassword, und es meldet "verboten". Wenn dies auch bei einer Verbindung mit einem Bot, der ohne appId und appPassword ausgeführt wird, funktioniert, würde dies bei der Fehlerbehebung sehr hilfreich sein.

Verwandte Themen