Botkit和Aws Lambda

kri*_*ish 4 aws-lambda botkit

如何部署在Aws Lambda中使用Botkit构建的slack bot.如果是斜杠命令,我们可以使用下面的代码响应事件.

exports.handler = function(event, context) {
    //Echo back the text the user typed in
    context.succeed('You sent: ' + event.text);
};
Run Code Online (Sandbox Code Playgroud)

但不知道如何为Bots做同样的事情.使用Botkit(Howdy)的Bots的示例代码是

Controller.hears(['help'], 'direct_message,direct_mention,mention', (bot, message) => {
    bot.reply(message, {
        text: `You can ask me things like:
    "Search Contact"
    "Search Account"`
    });
});
Run Code Online (Sandbox Code Playgroud)

ss2*_*s2k 5

Slack支持两种API集成样式RTM通过WebSockets(具有最低延迟的原始样式)和在您感兴趣的事情发生时通过HTTP推送的事件API(更新,更高效,但通常不是一个问题的更多延迟).您可以在Slack事件文档中阅读更多内容.

截至今天,BotKit仅支持基于WebSockets的Slack中的RTM API.WebSockets无法在Lambda中运行,因为它们经常连接,这违反了基于Lambda函数处理特性的快速旋转/向下事件.

Howdy的BotKit团队意识到了这一点,并且有兴趣添加对Slack Events API的支持.

  • Botkit本周宣布了Events API支持.https://medium.com/slack-developer-blog/botkit-is-better-with-slacks-events-api-f9a27e051591但我无法判断它是否仍然需要持久进程. (2认同)