如何构建一个 slack 机器人来进行多个对话?
How to build a slack bot to have multiple conversations?
我正在使用第三方服务构建一个 slack 机器人来处理基于输入的响应,而不是将它们硬编码到机器人中。此服务的 API 需要客户端 ID 和对话 ID 才能获得响应。我发现每次 slack 机器人收到一条消息时,它每次都会创建一个新的消息对象,因此没有办法将 clientID 和对话 ID 保留在消息对象中并让 slack 保留它。
rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){
rtm.sendMessage('hello', message.channel);
});
这么短,有没有人知道一种方法来保持单个用户和机器人之间的对话,同时保留某种类型的变量来保存客户端和对话 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 - 它会为您管理机器人用户对话。
我正在使用第三方服务构建一个 slack 机器人来处理基于输入的响应,而不是将它们硬编码到机器人中。此服务的 API 需要客户端 ID 和对话 ID 才能获得响应。我发现每次 slack 机器人收到一条消息时,它每次都会创建一个新的消息对象,因此没有办法将 clientID 和对话 ID 保留在消息对象中并让 slack 保留它。
rtm.on(RTM_EVENTS.MESSAGE, function(message // <-- new object each time the bot hears a message){
rtm.sendMessage('hello', message.channel);
});
这么短,有没有人知道一种方法来保持单个用户和机器人之间的对话,同时保留某种类型的变量来保存客户端和对话 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 - 它会为您管理机器人用户对话。