【问题标题】:Slack API - queue for retrieving slash commandsSlack API - 用于检索斜杠命令的队列
【发布时间】:2020-04-09 10:42:12
【问题描述】:

我的任务是在 Python 中构建一个 Slack 斜杠命令应用程序,该应用程序将响应传入的斜杠命令。但是,出于安全原因,我不允许为来自 Slack 的传入 webhook 打开防火墙。有没有办法检查发送的斜杠命令队列?

例如,用户在特定频道中键入“/myslashapp”。我的应用程序需要每 30 秒调用一次端点并检查是否发送了“/myslashapp”命令。如果是,我的应用程序应该触发 AWS 中的 Lambda 函数。

根据阅读 Slack API 文档,除了 RTM API 之外,我还没有找到任何方法来执行此操作,尽管它看起来有点矫枉过正并且仍然需要打开的套接字。

【问题讨论】:

    标签: python slack slack-api


    【解决方案1】:

    没有。 Slack API 没有内置支持,允许您事后从队列中拉取请求,而不是在请求发生时从 Slack 接收它们。

    RTM API 可能对您有用,因为与 Slack 的连接是从您这边发起的。所以——只要你的防火墙允许——也可以在 Intranet 中工作。但是,您不能使用 RTM API 或任何其他有趣的交互式 Slack 功能(如按钮)执行斜杠命令。只有简单的消息和事件。

    您可以实施自己的桥接解决方案并从中提取。但我认为拉动解决方案行不通,因为它会为您的应用程序带来很多延迟。用户期望他们的斜杠命令立即得到响应,而不是 30 秒或更长时间的延迟。

    所以总的来说,我认为你只有两个有效的选择:

    • 在内部托管您的应用并使用安全 VPN(如 ngrok)向您的应用公开一个公共 URL。

    • 在 Internet 上运行您的应用程序,并让它与您的 Intranet 建立安全连接以访问内部数据。 (类似于例如一个购物网站,它在 Internet 上有一个公共应用程序,但也可以将订单传输到公司 Intranet 上的业务应用程序。)

    【讨论】:

    • 在这种情况下延迟是可以接受的,因为该命令将启动一个需要 20 分钟才能生成的报告,所以不幸的是,我想我只能创建一个外部队列来接受 Slack webhooks 并让我的应用程序连接到该队列以检查...
    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多