Javascript Hubot嵌套命令
我想创建一个树型问答机器人,由hubot提供支持服务,但我还不知道如何创建。我想Hubot在有人进入房间时问一个问题(使用robot.enter),尽管这对Rocket.Chat不起作用。我找到了一个解决办法。但是,如果我想问一个问题,然后等待用户回复,以保存他们的回复并向他们询问另一个问题,我将如何进行此操作 我甚至尝试嵌套res.send,但它不允许我嵌套,这给了我CoffeeScript上的索引错误 您只需使用: robot.enter(res)-> res.发送res.随机回复Javascript Hubot嵌套命令,javascript,coffeescript,nested,hubot,rocket.chat,Javascript,Coffeescript,Nested,Hubot,Rocket.chat,我想创建一个树型问答机器人,由hubot提供支持服务,但我还不知道如何创建。我想Hubot在有人进入房间时问一个问题(使用robot.enter),尽管这对Rocket.Chat不起作用。我找到了一个解决办法。但是,如果我想问一个问题,然后等待用户回复,以保存他们的回复并向他们询问另一个问题,我将如何进行此操作 我甚至尝试嵌套res.send,但它不允许我嵌套,这给了我CoffeeScript上的索引错误 您只需使用: robot.enter(res)-> res.发送res.随机回复 如果您想
如果您想要预构建一些东西,有两个框架脚本可以提供此功能: hubot对话更具JavaScripty(讽刺的是,更具动态性),而hubot动态对话则围绕您构建对话流的JSON模型 如果你不喜欢这两个选项中的任何一个,你总是可以使用混合的机器人来实现你自己的流程。听动态匹配消息,大脑跟踪状态 示例(我没有实际测试,但应该给出正确的想法):
不幸的是,Rocket.chat的robot.enter无法工作。这是我说的我也尝试过的最初胡伯特大脑肯定是解决这个问题的方法
module.exports = (robot) ->
robot.respond /hello$/, (res) ->
res.reply 'Why hello there! How are you today?'
# Record that we are mid-conversation
convs = robot.brain.get('conversations')
convs = convs.push(message.user.name)
robot.brain.set('conversations', convs)
robot.listen(
# If we are mid-conversation, respond to whatever they say next
(message) -> message.user.name in robot.brain.get('conversations')
(response) ->
response.reply 'I hope you have a great rest of the day!'
# Record that we are done conversing
convs = robot.brain.get('conversations')
convs = convs.splice(convs.indexOf(message.user.name), 1)
robot.brain.set('conversations', convs)
)