slack sla sh команда работает, но отправить "не удалось с ошибкой" operation_timeout "" - PullRequest
0 голосов
/ 24 марта 2020

У меня проблема, возможно, глупая, с командой slack sla sh.

Я настраиваю команду /, которая просто запрашивает некоторые данные о заражении вирусом, которые будут извлечены при запросе, ответ работает хорошо но через некоторое время (3000 мс для тайм-аута) у меня появляется сообщение об ошибке "ошибка с ошибкой" operation_timeout ".

Чтение документации Slack, я должен отправить сообщение с подтверждением, и я думаю, что это делается путем отправки Отправить ответ с сообщением, верно? Или я должен отправить ответ перед отправкой сообщения?

Это код:

app.post('/covid', async (req, res) => {
console.log(req.body)
const respUrl = req.body.response_url
slackBody = {
    "text": "Test"
}

await axios.post(respUrl, JSON.stringify(slackBody), {
    headers: {
        'Content-Type': 'application/json',
    }
})
            .then(function (response) {
                console.log(response.data);
                console.log(response.status);
                console.log(response.statusText);
                console.log(response.headers);
                console.log(response.config);
            })
            .catch((e) => console.log(e))
})

This is the result

И это ответ Топора ios.

{
  url: 'https://hooks.slack.com/commands/TU7AFJ1RU/1022360678069/tTuQ4NJhgmnb58FNPeubZUR5',
  method: 'post',
  data: '{"text":"Test"}',
  headers: {
  Accept: 'application/json, text/plain, */*',
  'Content-Type': 'application/json',
  'User-Agent': 'axios/0.19.2',
 'Content-Length': 15
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus]
}

Я ломаю голову из 8 часов за эту хитрую проблему. Спасибо за вашу помощь:)


ОБНОВЛЕНИЕ

Уважаемое сообщество, я решаю эту проблему с помощью простого

res.send(slackBody)

, удаляя всю конфигурацию ax ios, теперь у меня есть простое сообщение, даже если я отправляю объект. сообщение ...

1 Ответ

1 голос
/ 26 марта 2020

Рад, что вы уже исправили это! Между тем, Slack ожидает 200 статус в течение 3 секунд , если он не получит никакого ответа, то выдаст ошибку «тайм-аут операции». Вы также можете отправить подтверждение на свободный канал с response_url, полученным из полезной нагрузки команды Sla sh. Для более, https://api.slack.com/interactivity/handling#message_responses

...