将 botkit 用于 Slack 机器人,有没有办法在对话中更新消息?

Posted

技术标签:

【中文标题】将 botkit 用于 Slack 机器人,有没有办法在对话中更新消息?【英文标题】:Using botkit for a Slack bot, is there a way to update messages when in a conversation? 【发布时间】:2017-06-13 21:11:07 【问题描述】:

这是关于使用 Botkit 开发 Slack 机器人。

Slack 允许您就地更新消息 - 例如,如果您从用户那里获得输入(无论是通过文本还是按钮),您可以根据该输入更新消息。 (有关此内容的更多信息,请在“替换原始消息”下:https://api.slack.com/docs/message-buttons)。

Botkit 通过 replyInteractive() 支持这一点,如下所示:https://github.com/howdyai/botkit/blob/master/readme-slack.md#message-buttons。

不过,Botkit 的一个关键功能是支持对话线程。虽然这些允许您提出问题并允许按钮作为答案,但我看不到在对话中进行交互式回复(即更新消息)的方法。

知道怎么做吗?目前不支持它的结论性答案也会有所帮助。谢谢!

【问题讨论】:

【参考方案1】:

这是可能的,但不是很明显。

bot.startConversation(message, function(err, convo) 
  convo.ask(
    text: "Here's some pretext",
    attachments: [
      "text": "More text",
      "fallback": "Fallback text",
      "callback_id": "Test",
      "actions": [
        
          "name": "yes",
          "text": "Yes",
          "value": "yes",
          "type": "button",
        ,
        
          "name": "no",
          "text": "No",
          "value": "no",
          "type": "button",
        
      ]
    ]
  , function(reply, convo) // convo.ask callback
    bot.replyInteractive(reply, "This text replaces the previous message");
    convo.say("This is a regular message");
    convo.next();
  );
);

注意replyInteractive() 如何使用reply 而不是message

我知道这已经晚了,但我希望它对某人有所帮助。

【讨论】:

谢谢!确实这种方法有效,这就是我最终要做的。我应该把它贴在这里但忘了:(谢谢你的发帖,我当然希望它对未来的人们有所帮助,因为正如你指出的那样,这并不明显。

以上是关于将 botkit 用于 Slack 机器人,有没有办法在对话中更新消息?的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow打造聊天机器人

Python asyncio 与 Slack 机器人

在 Zapier 中解码原始数据

使用Botkit和Rasa NLU构建智能聊天机器人

Slack 通道不适用于 MS Bot Framework

如何将 Slack 机器人扩展到 1000 个团队