Ich habe mehrere Schrägstrichbefehle programmiert, die eine Antwort in öffentlichen Kanälen ohne Probleme zeigen, aber sie zeigen keine Antwort in privaten Kanälen oder direkten Nachrichten.Slack Slash Befehle - Funktioniert nicht in privaten Kanälen oder direkten Nachrichten
Wie unten gezeigt, verwende ich den Antworttyp in_channel. Gibt es einen anderen Antworttyp, den ich verwenden kann, oder einen Workaround, damit er überall funktioniert?
$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);
Vielen Dank im Voraus!
Danke, Erik.Das ist großartig, aber es gibt zwei Dinge, die ich beheben müsste: Es postet auch den ursprünglichen Befehl zurück (was ich wahrscheinlich herausfinden werde, wie man loswird), aber vor allem muss ich in der Lage sein, das Symbol von innen zu setzen der Code. Wie Sie oben sehen können, habe ich "icon_url" => $ icon_url, was ein integraler Bestandteil des Befehls slash ist. Ich habe diese Zeile zu Ihrem Ansatz hinzugefügt, aber es funktioniert nicht. Weißt du, ob das möglich ist? Danke noch einmal! – Irina
Gerne helfen. 1. Es wird immer den ursprünglichen Befehl zurückgeben, wenn Sie "in_channel" verwenden. Nur eine Möglichkeit, dies auszuschalten, um "ephemere" zu verwenden, aber dann wird die Antwort nur vom Aussteller sichtbar sein. 2. Sie können kein Symbol in der Antwortnachricht für einen Schrägstrichbefehl festlegen. Stattdessen können Sie das Symbol für die entsprechende Slack-App in den App-Einstellungen festlegen. –
Danke nochmal, Erik. In diesem Fall muss ich meiner ursprünglichen Herangehensweise folgen, da ich das Symbol dynamisch einstellen und den Befehl ausblenden, aber trotzdem im Kanal posten muss. Mein ursprünglicher Code funktioniert großartig, aber nach einigen Tests habe ich festgestellt, dass er nur in Kanälen mit mindestens 5 Personen funktioniert. Weißt du, warum das sein könnte, oder ob es einen Weg gibt, es zu beheben? Es scheint mir ein Fehler zu sein. Danke noch einmal! – Irina