2017-01-28 24 views
3

Речь идет о разработке Slack-бота с использованием Botkit.Использование botkit для Slack bot, есть ли способ обновлять сообщения, когда в разговоре?

Slack позволяет обновлять сообщения на месте - например, если вы получаете ввод от пользователя (через текст или кнопки), вы можете обновить сообщение на основе этого. (Подробнее об этом здесь, в разделе «Замена исходного сообщения»: https://api.slack.com/docs/message-buttons).

Боткит поддерживает это посредством 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.

Я знаю, что это поздно, но я надеюсь, что это поможет кому-то.

+0

Спасибо! На самом деле этот метод работает, вот что я делал. Я должен был разместить его здесь, но забыл: (спасибо за публикацию, я надеюсь, что это поможет людям в будущем, так как вы указываете, что это не очевидно. – Chasseur