У меня есть slackbot, который отправляет сообщение для пользователя и работал в течение нескольких месяцев без каких-либо сбоев, но теперь не отправляет сообщение, после некоторого покопания я вижу, что ошибка, которую я получаю из slack, -
{
"ok":false,
"error":"invalid_request_data"
}
Поиск в Google ничего не помог мне найти, и я не уверен, в чем проблема, теперь зная, что он работал все это время и код не изменился.
Когда пользователь вводит в команде sla sh он попадает в php файл interactive.php
, это позволяет пользователю заполнить некоторую информацию, и эта информация затем также отправляется на deploy.php
через слабину
Это deploy. php file
<?php
$receivedRequest = json_decode($_POST['payload'], true);
$type = $receivedRequest["type"];
if ($type != "dialog_submission") {
exit("No");
}
$response_url = $receivedRequest["response_url"];
$user_id = $receivedRequest["user"]["id"];
$service = $receivedRequest["submission"]["service"];
$rollback = $receivedRequest["submission"]["rollback"];
$target = $receivedRequest["submission"]["target"];
$featureList = $receivedRequest["submission"]["featureList"];
$diff = $receivedRequest["submission"]["diff"];
$environment = $receivedRequest["submission"]["environment"];
$canary = $receivedRequest["submission"]["canary"];
if ($canary == "yes"){
$environment = $environment . " _canary_ ";
}
$data = [
"response_type" => "in_channel",
"text" =>
"<@" . $user_id . ">" . " is deploying *" . $service . "* to *" . $environment . "*" .
"\n" .
"*rollback: " . $rollback . " target: " . $target . "*\n" .
$featureList . "\n" .
"Diff: " . $diff . "\n <!here>"
];
$payload = json_encode($data);
// Prepare new cURL resource
$ch = curl_init($response_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
// Set HTTP Header for POST request
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Content-Length: " . strlen($payload),
]);
// Submit the POST request
$result = curl_exec($ch);
// Close cURL session handle
curl_close($ch);
return json_encode(array(
'status' => 200,
'message' => ''
));
Проблема, с которой я столкнулся, заключается в том, что переменная $ result теперь содержит ошибку, указанную выше.
Кто-нибудь знает, в чем может быть проблема быть?
Спасибо !!