我编写了几个斜杠命令,它们在公共通道中显示响应没有任何问题,但是它们在专用通道或直接消息中不显示任何响应。Slack Slash命令 - 不能在私人通道或直接消息中工作
如下所示,我使用in_channel响应类型。是否有任何其他响应类型可以使用,或者解决方法是否可以在任何地方使用?
$data = array(
"username" => "My_user",
"channel" => $channel_id,
"response_type" => "in_channel",
"text" => $text,
"mrkdwn" => true,
"icon_url" => $icon_url
);
$json_string = json_encode($data);
$slack_call = curl_init($slack_webhook_url);
curl_setopt($slack_call, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($slack_call, CURLOPT_POSTFIELDS, $json_string);
curl_setopt($slack_call, CURLOPT_CRLF, true);
curl_setopt($slack_call, CURLOPT_RETURNTRANSFER, true);
curl_setopt($slack_call, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Content-Length: " . strlen($json_string))
);
$result = curl_exec($slack_call);
curl_close($slack_call);
在此先感谢!
谢谢你,Erik。这很棒,但我需要解决两件事:它还将原始命令发回(我可能会弄清楚如何摆脱),但最重要的是,我需要能够从内部设置图标代码。正如你在上面看到的,我有“icon_url”=> $ icon_url,这是斜线命令的一个组成部分。我将这一行添加到了您的方法中,但它不起作用。你知道这是否可以做到?再次感谢! – Irina
乐于助人。 1.如果使用“in_channel”,它将始终响应原始命令。唯一的办法就是将它关闭以使用“短暂”,但只有发行人才能看到回应。 2.您不能在响应消息中为斜杠命令设置图标。相反,您可以在应用设置中为相应的Slack应用设置图标。 –
再次感谢Erik。在那种情况下,恐怕我不得不采取我最初的方法,因为我需要能够动态设置图标并隐藏命令,但仍然会在频道中发布。我的原始代码效果很好,但是在做了一些测试之后,我意识到它只适用于至少有5个人的渠道。你知道这是为什么,或者有什么方法可以解决这个问题吗?这对我来说似乎是一个错误。再次感谢! – Irina