【问题标题】:Interact with slack bot without a public accessible server在没有公共可访问服务器的情况下与 slack bot 交互
【发布时间】:2019-07-21 01:58:09
【问题描述】:

出于某些安全原因,我无法使用可公开访问的服务器来接收来自 slack 的数据。

所以,我打算这样做:

  • 来自 slack 的入站消息:使用 RTM API

  • slack 的出站消息:使用 RTM API 或 Web API

问题:

  1. 还有更好的选择吗?
  2. 有什么限制吗? (AFAIK,按钮和下拉菜单不起作用)
  3. 如果 Web API 达到速率限制,我可以使用传入的 webhook 作为备用计划吗?

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    仅 RTM 方法

    是的,那会奏效。仅使用 RTM API,您只能:

    您不能使用任何交互式功能,例如:

    消息发布的速率限制

    使用 webhook 作为“备份”来规避速率限制不是一种选择,因为每秒最多发布 1 条消息的速率限制适用于所有形式的消息发布。

    来自documentation

    一般来说,应用每秒发布的消息不超过一条 频道,是否通过 chat.postMessage 发布消息,传入的 webhook,或将消息发送到 Slack 的许多其他方式之一。

    替代方案

    您没有详细说明您的应用无法向公共 Internet 公开端点的原因。但您可能需要考虑使用像 ngrok 这样的 VPN 隧道。

    【讨论】:

    • 感谢详细的解释!至于“应用程序每个频道每秒只能发布不超过 1 条消息”,它如何应用于 DM?假设我有一个机器人可以通过 DM 同时为 5 个用户提供服务,每个 DM 会有一个频道吗?还是共享 1 个频道?
    • 是的,每个 DM 都算作自己的频道。与每个私人频道和公共频道相同。
    • 顺便说一句,如果我想选择其中一个来回复消息,RTM 和 Web API 的任何优点和缺点。我猜 RTM 可能会更有效,因为连接就在那里。我必须使用 Web API 而不是 RTM 来响应的任何情况(例如特殊或复杂消息)?
    • 您只能通过 RTM API 发送简单消息。对于任何复杂的东西,例如您需要使用 Web API 的附件或块。来源:api.slack.com/rtm#sending_messages
    • 顺便说一句:如果此答案解决了您的问题,请考虑通过单击复选标记将其标记为解决方案。泰!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2015-06-15
    相关资源
    最近更新 更多