Я использую функцию curl для вызова SlackAPI для отправки некоторого сообщения журнала Slack, и один раз код не выполняется, и во время отладки я обнаружил, что этот URL:
Core: Обработчик исключений (WEB): Uncaught TYPO3 Exception: # 1278450972:
Класс SlackConfigurationRepository не существует. Отражение не удалось.
| TYPO3 \ CMS \ Extbase \ Reflection \ Exception \ UnknownClassException
в файле
/var/www/html/typo3/sysext/extbase/Classes/Reflection/ReflectionService.php
в строке 363. Запрошенный URL:
http://somewhere/typo3/index.php?route=%2Ftools%2Fextebsionn2F&token=
не удалось правильно экранировать следующий код:
$room = ($room) ? $room : "test";
$data = json_encode(array(
"channel" => "#{$room}",
"text" => $message,
"icon_emoji" => $icon,
"username" => 'TYPO3: '.getenv("TYPO3_CONTEXT"),
));
// You can get your webhook endpoint from your Slack settings
$ch = curl_init("slackhookurl");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
, а $ message - предыдущий URL.
результат всегда был пустым, и Slack не получал никаких сообщений, смена конца предыдущего URL на любой из oken=
, ken=
или tken=
будет работать, и я получу сообщение в Slack.
или изменив код на:
...
"text" => htmlspecialchars($message),
...
также заставит его работать, что означает, что кодирование json не выполняется правильно.
Почему это поведение?
p.s. Сама ошибка сделана только для проверки кода.