Ich habe einen Bot, der lokal funktioniert, wenn Sie den Emulator verwenden, aber wenn ich versuche, den WebChat oder Skype zu verwenden. Es funktioniert nur in einer Richtung (das heißt, die Anfrage kommt von Webchat und Skype, aber die Antwort zurück zu ihnen geht nicht). Mein Code ist komplexer, aber ich bekomme die gleiche Antwort, wenn ich den Code unten verwende.BotFramework WebChat keine Nachrichten empfangen.
Ich verwende NGrok, um auf meine lokale Maschine zu zeigen und die Ngrok-URL als den Messaging-Endpunkt zu verwenden. Wie Sie sehen können, kommt der Test des Bot zurück als akzeptiert.
I VSCode im Debug-Modus verwenden und Anbringen so, dass ich durch Schritt kann. Wenn ich aus dem Emulator laufen, es gefangen wird, kann ich durch debuggen und die „Hallo Welt“ vom
session.send("Hello World");
geschickt zurückerhalten, wenn ich von Skype oder Webchat Kanälen versuchen. Es trifft den Endpunkt und durchläuft den Code wie der Emulator. Aber die session.send gibt nichts zurück zu Skype oder dem Webchat (zumindest nichts zeigt sich)
Wenn ich auf den Verkehr schaue. Der Unterschied zwischen den beiden (Emulator vs andere) ist, dass
1) Ich bekomme sowohl eine 202 angenommen UND 100 Fortsetzung (Nein 100 von Skype oder WebChat fortsetzen) 2) Der Autorisierungsträger hat ein Token drin. Das Gleiche passiert, wenn ich es in Azur lege und es von dort aus starte.
jede Hilfe wäre willkommen.
für Klarheit, ich mache einen Workshop, so wollte nicht jeder in den Workshop in die Cloud hochladen. Ich wollte es lokal ausführen, "als ob" es in der Cloud gehostet würde. Ich wollte auch debuggen. Ich setze Umgebungsvariablen, aber ich setze sie auf meinem Computer unter System Environment-Variablen.Während ich im --debug-Modus laufe, gehe ich davon aus, dass sie von dort nicht gelesen werden, also wurden sie zum Abschnitt "env" des Launch-Bereichs der Datei launch.json hinzugefügt. –
Um noch einmal zu folgen. Der Grund dafür, dass ich sie nicht in meine Systemvariablen gesetzt habe, ist, dass ich meine Konsole nie neu gestartet habe, damit sie nicht angezeigt wurden. Wenn Sie dies vorübergehend auch auf dem Mac tun möchten, exportieren Sie einfach VARNAME = "my value" oder echo "NAME = VALUE; exportieren Sie NAME" >> ~/.profile, um sie zu speichern –