如何使用斜杠命令向通道显示交互式消息,除了调用它的人?
How to display an interactive message to a channel with a slash command EXCEPT to the person evoking it?
我创建了一条交互式消息,该消息通过斜线命令调用,该命令分发到整个频道。一切正常。但我终其一生都想不出如何将消息限制在整个频道中,而仅限于唤起它的人。现在,消息发送给所有人,包括调用它的人。如果您曾经使用过 /poll
,投票将发送给除创建它的人以外的所有人。
如果有人知道怎么做,你能给我指明正确的方向吗?
斜杠命令的响应消息只能是以下两种情况之一:
- 一个
ephemeral
响应,只能被发出命令的用户看到
- 一个
in_channel
的回复,频道内所有人都能看到
没有任何功能或开关使响应消息对发布用户不可见。
但是,您可以构建一个解决方法并手动向除发出命令的用户之外的每个用户发送临时消息。以下是其工作原理的概述:
- 通过
conversations.members
获取频道用户列表
- 通过
chat.postEphemeral
向每个用户发送临时消息
此解决方法有一些重要的注意事项:
- 您的应用程序需要许多额外的范围才能被允许检索成员列表和发送消息(有关详细信息,请参阅这些 API 方法的文档)
- 每秒约 1 条消息的速率限制,因此可能需要相当长的时间才能将这些消息发送给所有用户,具体取决于组的大小
- 您的斜杠命令需要在 3 秒内响应。所以你需要实现一些花哨的多线程才能发送所有这些消息。
- 要在私人渠道中使用该功能,您必须与其他机器人用户合作
这会得到您想要的结果,但有一些注意事项:
我创建了一条交互式消息,该消息通过斜线命令调用,该命令分发到整个频道。一切正常。但我终其一生都想不出如何将消息限制在整个频道中,而仅限于唤起它的人。现在,消息发送给所有人,包括调用它的人。如果您曾经使用过 /poll
,投票将发送给除创建它的人以外的所有人。
如果有人知道怎么做,你能给我指明正确的方向吗?
斜杠命令的响应消息只能是以下两种情况之一:
- 一个
ephemeral
响应,只能被发出命令的用户看到 - 一个
in_channel
的回复,频道内所有人都能看到
没有任何功能或开关使响应消息对发布用户不可见。
但是,您可以构建一个解决方法并手动向除发出命令的用户之外的每个用户发送临时消息。以下是其工作原理的概述:
- 通过
conversations.members
获取频道用户列表
- 通过
chat.postEphemeral
向每个用户发送临时消息
此解决方法有一些重要的注意事项:
- 您的应用程序需要许多额外的范围才能被允许检索成员列表和发送消息(有关详细信息,请参阅这些 API 方法的文档)
- 每秒约 1 条消息的速率限制,因此可能需要相当长的时间才能将这些消息发送给所有用户,具体取决于组的大小
- 您的斜杠命令需要在 3 秒内响应。所以你需要实现一些花哨的多线程才能发送所有这些消息。
- 要在私人渠道中使用该功能,您必须与其他机器人用户合作
这会得到您想要的结果,但有一些注意事项: