Slack bot API больше не работает - PullRequest
1 голос
/ 06 августа 2020

У меня есть 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 теперь содержит ошибку, указанную выше.

Кто-нибудь знает, в чем может быть проблема быть?

Спасибо !!

1 Ответ

1 голос
/ 07 августа 2020

Хорошо, он снова начал работать.

Должно быть, что-то было со стороны Slack. Странно, потому что на их странице статуса ничего не указано

...