4

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

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

4

1 回答 1

5

这是可能的,但不是以明显的方式。

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.

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

于 2017-09-03T20:12:06.997 回答