6

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

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

任何提示都会很有用。

4

4 回答 4

8

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

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

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

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

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

于 2016-02-05T18:12:25.403 回答
3

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

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

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

于 2016-08-04T07:27:28.963 回答
2

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

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

于 2018-11-04T15:45:08.990 回答
2

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

于 2016-02-07T13:14:41.130 回答