【问题标题】:slack chat.postMessage vs. incoming webhook?slack chat.postMessage 与传入的 webhook?
【发布时间】:2019-09-17 15:55:16
【问题描述】:

我正在尝试将来自多个外部来源的消息发送到特定频道,该频道是私人的并且只属于我自己。用户名应该是来源的名称,而不是我的 ID。

我发现有两种方法可以实现类似的功能:Incoming Webhookschat.postMessage

这两个我都练过,好像没什么区别。

但是,在Incoming Webhooks 中,有一份声明说:

您现在无法将 Incoming Webhooks 与 Workspace 应用程序一起使用;那些 应用程序可以请求单通道写入访问,然后使用 chat.postMessage 在 Web API 中发布消息,提供了非常 与传入 Webhook 类似的功能。

这是什么意思?

对于我的工作,哪个更好?

【问题讨论】:

  • 感谢两位提供有用的建议。我的单位刚开始使用slack,所以近期很可能会出现一些slack的技术问题。我会将它们发布在 stackoverflow 上,以便与像您这样的专业人士讨论。谢谢!

标签: slack slack-api


【解决方案1】:

补充 Ben 所说的话:

传入的 webhook 的功能有限。如果您需要一种简单的方法来发送不需要令牌的消息,它们非常有用,但通常 API 方法 (chat.postMessage) 是更好的选择。它更灵活(例如,不固定在一个频道上)并提供完整的功能(例如,您可以获取消息的 ID 并可以稍后对其进行更新)。

工作区应用程序/令牌,其中一项新功能允许应用程序仅安装在一个渠道中(除其他外)。它从未离开测试阶段,可以放心地忽略以进行进一步开发。

【讨论】:

  • 感谢您的建议!还有一个关于chat.postMessage 令牌的问题。我正在使用Legacy token generator 为chat.postMessage 生成令牌。它指出“旧版令牌是生成用于测试和开发的令牌的旧方法。因为我们强烈建议您不再使用旧版自定义集成,您应该使用 Slack 应用程序来快速生成令牌,而无需 OAuth,方法是将您的应用程序安装到你自己的团队。”您是否也曾在 chat.postMessage 上使用过这个遗留令牌?
  • 是的。遗留令牌可与任何 API 方法完美配合,包括。 chat.postMessage
  • @ErikKalkoken,webhook 的速率是否受到限制?根据文档,Web API 似乎受到限制。假设我安装了一个机器人,并且最多可以有 10 个用户同时与该机器人交谈,我应该如何应对?使用 chat.postMessage API 还是使用一些传入的 webhook?
  • 没有相同的速率限制适用于 webhook 和 chat.postMessage 每秒最多发布 1 条消息。所以我总是推荐使用 API 端点,因为它有更好的功能。请参阅此处了解速率限制:api.slack.com/docs/rate-limits#limits_when_posting_messages
【解决方案2】:

使用 chat.postMessage() 可以向特定频道发送消息,通常是为了响应用户的操作。您将需要该令牌来验证您在用户安装您的应用程序时收到的 postMessage 请求。 传入的 webhook 通常用于发布一般信息,例如补丁说明或一般公告。 据我所知,您不需要令牌,因为该 URL 后面有验证。 所以 webhook url 绑定到一个特定的频道,这个频道是通过用户指定的。使用chat.postMessage,您可以在任何地方发布消息(取决于您的权限,可能不在私人频道或直接消息中)

【讨论】:

  • 感谢您的分享,我同意您的观点。因此,这取决于我认为的频道字段..
  • 您是在构建一个公共应用程序还是只在内部使用它?
  • 如果你只是在内部使用它,我只会使用 webhook。对于我的 slack 应用程序,最好使用 chat.postMessage,因为我们发布的消息的目的地可以由不同的用户定义。但如果它应该只是将其他数据源聚合到特定通道,Webhooks 应该完成他们的工作
  • 感谢您的建议!实际上有 5 种类型的消息分别发送到它们对应的通道中。消息是我自己发的,我也是这些频道的所有者。上面这方面,我觉得chat.postMessage 比较合适。但是,我们担心令牌意外泄漏导致的安全问题。与传入的 webhook 相比,使用 chat.postMessage 可能风险更大?
  • 安全方面我认为这并没有太大的不同,即使你应该始终尽量不暴露它们,当它发生时,你可以重新生成令牌,或者在你的应用程序设置中撤销 webhook。事实上,有一次我在公共 github 存储库中公开了我的令牌,而 slack 扫描仪检测到这一点并自动撤销了令牌!老实说,我不知道他们是否也为 webhooks 这样做
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多