【问题标题】:How to send message to Slack listening channels?如何向 Slack 收听频道发送消息?
【发布时间】:2016-05-04 20:34:11
【问题描述】:

我正在开发一个 slack 应用程序(范围包括 bot 和传入的 webhook)。我可以将消息发送到定义的频道,但我不知道如何停止使用“&channel=”参数而只是将消息发送到收听频道。通过收听,我的意思是,当安装应用程序时,会询问用户在哪里发布(必须选择频道或 dm)。

String postUrl = "https://slack.com/api/chat.postMessage?token=" + botAccessToken + "&as_user=false&channel=%23community&text=testing&username=CommunityQ";

任何提示都会很有用。

【问题讨论】:

  • 目前还不清楚是什么问题。如果用户选择发送消息的频道,为什么不使用"&channel="+whatUserSelected?为什么要停止使用&channel= 参数?
  • 这将是理想的,我不确定如何获得用户选择的内容。按下“安装应用程序”后,下一个屏幕供用户选择频道,然后授权。这将重定向到一个 https url,我从那里获取我在发布消息请求中使用的代码 (twitter.com/?code=10438895956.23091995778.196dfdf43d&state=)
  • 我在 json 响应中找到了它。我不知道为什么这逃脱了我。谢谢。添加您的评论作为答案,以便我投票?

标签: slack-api slack


【解决方案1】:

我认为你不能:根据official Slack API documentation,不可能将消息发送到所有/多个监听通道:

传入的 webhook 输出到默认通道并且只能发送 一次向单个频道发送消息。您可以覆盖自定义 集成的配置通道,通过指定通道字段 你的 JSON 负载。

我将此解释为“您的消息发送到的总是一个频道”

此外,Slack 限制了 Slack 应用程序的此频道覆盖功能:

您不能覆盖默认用户名、图标或频道 附加到 Slack 应用程序的传入 webhook。

【讨论】:

    【解决方案2】:

    我认为这里有点混乱。我不确定“bot”范围不能做的“incoming webhook”范围做什么。这是我的看法

    • 您要么想要一个轻量级、低权限的应用,在一个频道中发帖,要么使用传入的 webhook 范围
    • 或者您想要一个可以向用户提问的应用程序,例如他们希望更新发布到哪些频道、处理答案等。然后您将使用机器人范围,机器人可以在任何公共频道

    如果您提供更多关于您想要实现的目标的详细信息,我们或许可以为您提供更好的帮助

    【讨论】:

      【解决方案3】:

      正如迈克尔在他的answer 中提到的,不可能同时发布到多个频道。您必须查看它们并执行多个请求。

      【讨论】:

        【解决方案4】:

        如果您想要一种更动态的方法将消息发送到任何渠道,我建议使用 API 方法 chat.postMessage 而不是 incoming webhook

        API 方法可以将消息发布到任何频道(包括私人频道、DM),只要您的令牌可以访问它。

        【讨论】:

          猜你喜欢
          • 2022-07-25
          • 2022-01-12
          • 2020-09-28
          • 1970-01-01
          • 1970-01-01
          • 2017-10-16
          • 1970-01-01
          • 1970-01-01
          • 2021-03-24
          相关资源
          最近更新 更多