我正在尝试将消息发送到基于Microsoft bot框架的机器人。
这是我的代码。
const builder = require("botbuilder");
\\I have id and password, did not show them here
const config = {
appId: "**********************",
appPassword: "********************"
};
const connector = new builder.ChatConnector(config);
const bot = new builder.UniversalBot(connector);
// respond to bot messages
app.post("/bot", () => console.log('being called') ,connector.listen());
// define bot dialog routes
bot.dialog("/", session => {
console.log('++++++++++++++>', session.message.text)
});
正在打印"被称为#34;但不打印" ++++++++++++++++++ 我没有收到任何错误消息。
如何检查问题并解决此问题?
注意:这不是模拟器,我可以在本地的应用程序中尝试这个。
答案 0 :(得分:2)
虽然似乎缺少代码(例如,应用程序未定义),但我会假设您正在使用Express并且事情的一面很好。在有来自用户的输入之前,不会触发根对话框。
采用这个超级简单的ConsoleConnector示例:
const builder = require('botbuilder')
let connector = new builder.ConsoleConnector().listen()
let bot = new builder.UniversalBot(connector)
bot.dialog('/', (session) => {
console.log('Testing')
})
将其粘贴到文件中并运行它。您会注意到您没有收到任何错误消息,但您也不会看到控制台日志。现在输入任何内容并按回车键。这将触发根对话框,并且将触发console.log。
如果您想在对话开始时发送主动消息,请查看“问候用户”#39; Bot Framework documentation中的示例。
修改强>
使用Express的附加Echo Bot示例:
const express = require('express')
const builder = require('botbuilder')
const app = express()
const port = 8080
const connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
})
const bot = new builder.UniversalBot(connector)
bot.dialog('/', (session) => {
console.log('Testing')
session.send(session.message.text)
})
app.post('/api/messages', connector.listen())
app.listen(port)
我意识到你此时并未使用模拟器,但为了测试,请将其指向localhost:8080 / api / messages并输入内容。您将看到console.log消息,并且您输入的消息将回显给您。