我正在开发一个松弛的应用程序(范围包括机器人和传入的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 回答
我想你不能:根据official Slack API documentation,无法向所有/多个监听 Channels 发送消息:
我将此解释为“您的邮件总是发送到 exactly one Channels ”
此外,Slack限制 Slack apps 的此通道覆盖功能:
正如迈克尔在他的answer中提到的那样,不可能同时发布到多个 Channels . 您必须浏览它们并执行多个请求 .
我认为这里有一点点混乱 . 我不确定“传入webhook”范围是什么,“bot”范围不能做 . 这就是我看待事物的方式
您想要一个轻量级,低权限的应用程序在一个 Channels 中发布,并且您将使用传入的webhook范围
或者您想要一个可以向用户提问的应用程序,例如他们使用机器人范围的渠道,并且机器人可以在任何公共渠道发布
如果你提供一些你想要实现的细节,我们可以帮助你更好
如果您想要一种更加动态的方法将消息发送到任何 Channels ,我建议用户使用API方法chat.postMessage而不是incoming webhook .
只要您的令牌可以访问它,API方法就可以将消息发布到任何通道(包括专用通道,DM) .