Botkit 和 AWS Lambda

4
如何在AWS Lambda中部署使用Botkit构建的Slack机器人。 如果它是一个斜杠命令,我们可以使用以下代码响应事件。
exports.handler = function(event, context) {
    //Echo back the text the user typed in
    context.succeed('You sent: ' + event.text);
};

但不确定如何为机器人做同样的事情。使用Botkit(Howdy)编写机器人的示例代码如下:

Controller.hears(['help'], 'direct_message,direct_mention,mention', (bot, message) => {
    bot.reply(message, {
        text: `You can ask me things like:
    "Search Contact"
    "Search Account"`
    });
});
1个回答

5

Slack支持两种API集成方式,即通过WebSockets的RTM(原始样式,最低延迟)和每当您感兴趣的东西发生时通过HTTP推送的事件API(更加高效但稍微有些延迟,通常不会成为问题)。您可以在Slack事件文档中了解更多信息。

截至今天,BotKit仅支持基于WebSockets的RTM API从而与Slack进行集成。由于WebSockets是始终连接的,这与Lambda函数的快速启动/关闭事件处理性质相违背,因此无法在Lambda中使用。

Howdy的BotKit团队已经意识到了这一点,并有意添加对Slack事件API的支持。


2
Botkit在本周宣布支持Events API。https://medium.com/slack-developer-blog/botkit-is-better-with-slacks-events-api-f9a27e051591。但是我无法确定它是否仍然需要持久进程。 - Tim Swast

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接