使用slack命令将响应发送给发行者和特定通道

时间:2017-10-06 09:57:23

标签: slack slack-api

我想在slack上创建一个命令,在调用之后将结果返回给发行者,并将另一条消息写入特定的通道。

这可能吗?

在文档中,我发现我可以设置in_channel属性,但是我想指定将响应发送到特定通道,甚至将命令调用限制到特定通道。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用标准slash commmand来实现这一目标。斜杠命令会触发您的应用,然后可以将结果返回给用户,并使用chat.postMessage向另一个频道发送消息(前提是您的所有人都拥有必要的权限)。

可以将斜杠命令调用限制到特定通道,但仅适用于公共频道,因为Slack会告诉您的应用程序名称是否调用了公共频道,而不是私有频道的名称。

对于公共频道,您的应用将获取每个请求调用斜杠命令的频道ID。您的应用可以使用该信息来决定是否允许该命令,并做出相应的响应。

对于私人频道,您只能获得privategroup作为频道名称,而不是真实姓名或组ID。您当然可以使用此信息在所有私有渠道中排除该命令的使用,但不包括特定渠道的使用。

以下是您的应用从Slack获取的请求的示例:

token=gIkuvaNzQIHg97ATvDxqgjtO
team_id=T0001
team_domain=example
enterprise_id=E0001
enterprise_name=Globular%20Construct%20Inc
channel_id=C2147483705
channel_name=test
user_id=U2147483697
user_name=Steve
command=/weather
text=94070
response_url=https://hooks.slack.com/commands/1234/5678
trigger_id=13345224609.738474920.8088930838d88f008e0
相关问题