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"`
    });
});
4

1 回答 1

5

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

截至今天,BotKit 仅支持 Slack 中基于 WebSockets 的 RTM API。WebSockets 在 Lambda 中不起作用,因为它们是不断连接的,这违背了 Lambda 函数基于快速启动/停止事件的处理性质。

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

于 2016-10-09T01:31:19.207 回答