在直接消息通道中使用斜杠命令识别机器人
Bot identification with slash command in direct message channel
我有一个名为 'rbot' 的自定义 slack 机器人。我还创建了一个自定义斜杠命令“/r-out”。每当从任何通道执行此命令时,我的 java 服务都会被调用,参数包括 'channel_id' 和 'channel_name',我用它们来识别从哪个通道执行此命令。
现在,我只想将此命令限制为 'rbot'。为此,我需要验证命令是否像在带有 'rbot' 的直接消息通道中一样执行。我怎样才能做到这一点?
要验证斜线命令是否通过您的应用在直接消息通道中发送,您只需检查斜线请求中的 channel_id
是否指的是您应用的有效直接消息通道。
更详细:
当用户在您的应用程序的直接消息通道中执行您的斜杠命令时,您的应用程序将收到如下斜杠请求:(PHP 数组)
array (
'token' => 'XXX',
'team_id' => 'T12345678',
'team_domain' => 'mydomain',
'channel_id' => 'D12345678',
'channel_name' => 'directmessage',
'user_id' => 'U12345678',
'user_name' => 'erik.kalkoken',
'command' => '/evestatus',
'text' => '',
'response_url' => 'https://hooks.slack.com/commands/Txxx',
'trigger_id' => '123',
)
channel_id
将以 "D" 开头,表明这来自直接消息渠道。
接下来使用 im.list
为您的应用拉取直接消息渠道列表。确保使用您的应用程序令牌,以便您获得应用程序的直接消息渠道。
如果 channel_id
在该列表中,则斜杠命令是在您的应用程序的直接消息通道中使用的。
我有一个名为 'rbot' 的自定义 slack 机器人。我还创建了一个自定义斜杠命令“/r-out”。每当从任何通道执行此命令时,我的 java 服务都会被调用,参数包括 'channel_id' 和 'channel_name',我用它们来识别从哪个通道执行此命令。
现在,我只想将此命令限制为 'rbot'。为此,我需要验证命令是否像在带有 'rbot' 的直接消息通道中一样执行。我怎样才能做到这一点?
要验证斜线命令是否通过您的应用在直接消息通道中发送,您只需检查斜线请求中的 channel_id
是否指的是您应用的有效直接消息通道。
更详细:
当用户在您的应用程序的直接消息通道中执行您的斜杠命令时,您的应用程序将收到如下斜杠请求:(PHP 数组)
array (
'token' => 'XXX',
'team_id' => 'T12345678',
'team_domain' => 'mydomain',
'channel_id' => 'D12345678',
'channel_name' => 'directmessage',
'user_id' => 'U12345678',
'user_name' => 'erik.kalkoken',
'command' => '/evestatus',
'text' => '',
'response_url' => 'https://hooks.slack.com/commands/Txxx',
'trigger_id' => '123',
)
channel_id
将以 "D" 开头,表明这来自直接消息渠道。
接下来使用 im.list
为您的应用拉取直接消息渠道列表。确保使用您的应用程序令牌,以便您获得应用程序的直接消息渠道。
如果 channel_id
在该列表中,则斜杠命令是在您的应用程序的直接消息通道中使用的。