我編寫了幾個斜槓命令,它們在公共通道中顯示響應沒有任何問題,但是它們在專用通道或直接消息中不顯示任何響應。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