作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为“rbot”的自定义 Slack 机器人。我还创建了一个自定义斜杠命令“/r-out”。每当从任何 channel 执行此命令时,都会使用包含“channel_id”和“channel_name”的参数调用我的java服务,我用它们来识别从哪个 channel 执行此命令。
现在,我想将此命令限制为仅适用于“rbot”。为此,我需要验证命令是否在带有“rbot”的直接消息 channel 中执行。我怎样才能实现这个目标?
最佳答案
要验证斜杠命令是否在您的应用的私信 channel 中发送,您只需检查斜杠请求中的 channel_id
是否引用了您应用的有效私信 channel 。
更详细:
当用户在您的应用程序的直接消息 channel 中执行斜杠命令时,您的应用程序将收到如下斜杠请求:(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”开头,表示它来自直接消息 channel 。
接下来使用 im.list
提取您的应用的直接消息 channel 列表。请务必使用您的应用 token ,以便您获得应用程序的直接消息 channel 。
如果 channel_id
位于该列表中,则表示在您的应用的直接消息 channel 中使用了斜杠命令。
关于java - 私信 channel 中使用斜杠命令识别机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47133776/
我是一名优秀的程序员,十分优秀!