如何向Slack监听 Channels 发送消息?

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

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

任何提示都会有用 .

回答(4)

2 years ago

我想你不能:根据official Slack API documentation,无法向所有/多个监听 Channels 发送消息:

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

我将此解释为“您的邮件总是发送到 exactly one Channels ”

此外,Slack限制 Slack apps 的此通道覆盖功能:

您无法覆盖附加到Slack应用程序的传入webhook的默认用户名,图标或 Channels .

2 years ago

正如迈克尔在他的answer中提到的那样,不可能同时发布到多个 Channels . 您必须浏览它们并执行多个请求 .

2 years ago

我认为这里有一点点混乱 . 我不确定“传入webhook”范围是什么,“bot”范围不能做 . 这就是我看待事物的方式

  • 您想要一个轻量级,低权限的应用程序在一个 Channels 中发布,并且您将使用传入的webhook范围

  • 或者您想要一个可以向用户提问的应用程序,例如他们使用机器人范围的渠道,并且机器人可以在任何公共渠道发布

如果你提供一些你想要实现的细节,我们可以帮助你更好

2 years ago

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

只要您的令牌可以访问它,API方法就可以将消息发布到任何通道(包括专用通道,DM) .