Мои команды Slash в Slack внезапно перестали работать 2 месяца назад.
Настройка относительно проста:
Я сократил код PHP до следующего (в целях тестирования):
header('Content-Type: application/json'); // response to slack in JSON
$jsonReturn = array();
$jsonReturn['response_type'] = "in_channel";
$jsonReturn['text'] = 'TEST MESSAGE HERE.';
die(json_encode($jsonReturn)); // exit JSON with die()
В Slack я получаю следующее сообщение об ошибке:
Черт, эта команда косой черты не сработала (сообщение об ошибке: 403_client_error). Управляйте командой в APPNAME.
Я попробовал следующее, чтобы решить проблему:
Если я открою сайт PHP прямо на своем компьютере или мобильном телефоне, я увижу правильный возврат JSON.
Slack работает в сети нашей компании, но я полагаю, что ошибка возникла при изменении API Slack, но я действительно не знаю, какое изменение могло вызвать это.
Спасибо!
Да, я скопировал URL-адрес запроса из формы редактирования команды, и в браузере он показывает мне результат JSON, но Slack его не получает.
Ошибка 403 означает, что Slack не авторизован для доступа к вашему URL. Поскольку вы находитесь в сети компании, вероятно, что в брандмауэре компании произошли изменения, которые теперь предотвращают доступ к Slack. (И нет, Slack не работает в сети вашей компании, это облачный сервис). Вы можете исправить это, перенеся свой скрипт на общедоступный веб-сервер, используя такую службу, как нгрок, или поговорите со службой безопасности вашей компании, чтобы открыть брандмауэр. (Также НЕ изменился API для ответов на команды с косой чертой)
Спасибо за советы и разъяснения. Я проверил результат JSON с помощью echo.jsontest.com, и с этим общедоступным серверным тестом он работает. Я сейчас посмотрю с командой безопасности.






403 запрещено. проверьте URL-адреса slack-вызовов, вы уверены, что это то же самое?