Я сейчас создаю очень маленькую команду слеша для своего канала. Я отправляю команду в скрипт PHP с использованием HTTPS 200, манипулирую ею и отправляю ее обратно в виде полезной нагрузки JSON, в основном так:
<?php
header('Content-Type: application/json');
$text = $_POST['text'];
if ($text === "keyword") $answer = "Hello World";
else $answer = "Nothing in here";
$response = array(
'response_type' => 'in_channel',
'text' => $answer,
);
echo json_encode($response);
Теперь я не хочу размещать начальную косую черту в канале, как уже упоминалось в заголовке, но только ответ сервера должен быть видимым для всех в канале. Я не могу найти подходящую статью для этого, поэтому я спрашиваю себя: возможно ли это?
У кого-нибудь есть идея?
Edit:
Я не хочу, чтобы этот провал также отправил мою команду как сообщение. Так что только второе сообщение является постом в канале:
см. Скриншот
Обновление:
Теперь я реализовал предложение Эрика Калкокена, но не получаю сигнал от функции curl. Я также успешно проверил, поддерживает ли мой веб-сервер функции curl. Мой код теперь выглядит следующим образом (код был уменьшен до необходимого):
<?php
header('Content-Type: application/json');
$response = array(
'response_type' => 'in_channel',
'text' => "> \\M2\Kunden\_Tutorial"
);
echo json_encode(array('text' => 'One moment...'));
$ch = curl_init($_POST['response_url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
$exec = curl_exec($ch);
curl_close($ch);
Рабочий раствор:
После повторного принятия совета Эрика Калкокена он все еще не работал. Что не значит, что он сказал что-то не так. Напротив, я кое-что забыл. Я обнаружил, что мой массив $ response должен быть закодирован как строка json. Ниже вы можете увидеть рабочую версию. Спасибо Эрику Калкокену!
<?php
$response = array(
'response_type' => 'in_channel',
'text' => '> \\M2\Kunden\_Tutorial'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_POST['response_url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($response));
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close ($ch);