如何build立一个松散的机器人有多个对话?

我正在使用第三方服务构build一个懒散的机器人来处理基于input的响应,而不仅仅是将其编码到机器人中。 这个服务的API需要一个客户端ID和一个对话ID来获得响应。 我发现每次有一个闲置的机器人接收到一条消息时,它每次都会创build一个新的消息对象,所以没有办法将消息对象中的clientID和对话ID保留下来,并且保留下来。

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

所以缩短了,有没有人知道一种方法来保持一个单一的用户和机器人之间的对话,而坚持一些types的variables来保存客户端和对话ID?

您可以存储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 – 它为您pipe理bot用户对话。