如何建立一个松散的机器人进行多次对话?

时间:2016-04-15 13:39:46

标签: node.js slack-api slack

我正在使用第三方服务构建一个松散的机器人来处理基于输入的响应,而不是仅仅将它们硬编码到机器人中。此服务的API需要客户端ID和会话ID以获得响应。我发现每次slack bot接收消息时,它每次都会创建一个新的消息对象,因此没有办法将clientID和会话ID保留在消息对象中并且保持松弛。

rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){
  rtm.sendMessage('hello', message.channel);
});

如此缩短,有没有人知道如何在保持客户端和会话ID的某种类型的变量的同时保持单个用户和机器人之间的对话?

1 个答案:

答案 0 :(得分:3)

您可以存储message.user ID并跟踪引用该特定用户的对话。您需要自己跟踪所有正在进行的对话。像这样的东西

rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){
  if(stored_conversations.indexOf(message.user) > -1){
    //customize message depending on history
    rtm.sendMessage('I remember you', message.channel);
  }
});

或者,您可以使用Botkit - 它可以为您管理僵尸用户对话。