我怎样才能使机器人工作?

时间:2017-10-06 08:39:48

标签: javascript botframework

我正在尝试将消息发送到基于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;但不打印" ++++++++++++++++++ 我没有收到任何错误消息。

如何检查问题并解决此问题?

注意:这不是模拟器,我可以在本地的应用程序中尝试这个。

1 个答案:

答案 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消息,并且您输入的消息将回显给您。