Slack Slash 命令 - 不适用于私人频道或直接消息

Iri*_*ina 1 php slack-api slack

我编写了几个斜杠命令,这些命令在公共频道中显示响应没有任何问题,但它们在私人频道或直接消息中不显示任何响应。

如下所示,我使用 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);
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Iri*_*ina 5

我与 Slack 团队进行了交谈,他们非常有帮助,我们找出了问题所在。我在这里分享它以防其他人遇到同样的问题。

问题不在于公共或私人渠道中使用的命令。创建 webhook 的人对其进行了设置,以便它可以在私人频道(我们的测试频道)上运行,因此它只能在该频道或她所属的任何频道(因此,所有公共频道)中运行。一旦我将她添加到私人频道,就可以了。

解决方案是 Webhook 的创建者对其进行编辑(不是代码,只是 Webhook)并将其默认设置为公共频道(任意)而不是私有频道。这使得它可以在每个渠道中使用,甚至是直接消息。

这样,我就能够使用我的原始代码,这也允许我动态更改用户图标,而不是发回消息。

我希望这也能帮助其他人!