Я пытаюсь разработать и запустить бот Slack с помощью этого репо . Я не настраивал ничего, кроме развертывания на Heroku.
У меня все настроено, и я считаю, что все работает так, как должно быть, когда я go отправляю запрос в свое приложение, Я получаю следующую ошибку: TypeError [ERR_INVALID_ARG_TYPE]: The "url" argument must be of type string. Received type undefined
.
Вот полный журнал ошибок:
2020-01-24T20:44:59.024897+00:00 heroku[router]: at=info method=POST path="/incoming" host=bot-name.herokuapp.com request_id=e5367452-5894-434d-b7e7-15c024480cf0 fwd="34.223.105.71" dyno=web.1 connect=1ms service=35ms status=400 bytes=235 protocol=https
2020-01-24T20:51:31.327412+00:00 app[web.1]: TypeError [ERR_INVALID_ARG_TYPE]: The "url" argument must be of type string. Received type undefined
2020-01-24T20:51:31.327426+00:00 app[web.1]: at validateString (internal/validators.js:112:11)
2020-01-24T20:51:31.327428+00:00 app[web.1]: at Url.parse (url.js:155:3)
2020-01-24T20:51:31.327431+00:00 app[web.1]: at Object.urlParse [as parse] (url.js:150:13)
2020-01-24T20:51:31.327433+00:00 app[web.1]: at dispatchHttpRequest (/app/node_modules/axios/lib/adapters/http.js:67:22)
2020-01-24T20:51:31.327436+00:00 app[web.1]: at new Promise (<anonymous>)
2020-01-24T20:51:31.327438+00:00 app[web.1]: at httpAdapter (/app/node_modules/axios/lib/adapters/http.js:20:10)
2020-01-24T20:51:31.327440+00:00 app[web.1]: at dispatchRequest (/app/node_modules/axios/lib/core/dispatchRequest.js:59:10)
2020-01-24T20:51:31.327442+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:94:5) {
2020-01-24T20:51:31.327444+00:00 app[web.1]: code: 'ERR_INVALID_ARG_TYPE'
2020-01-24T20:51:31.327447+00:00 app[web.1]: }
Я не понимаю, что означает ошибка / что за программа хочет. Должен ли я передавать какой-то другой URL-адрес в полезной нагрузке?
Вот раздел приложения, который обрабатывает эту часть:
app.post('/incoming', (req, res) => {
debug('an incoming ticket was received');
Ticket.fromExternal(req.body)
.then((ticket) => ticket.postToChannel())
.then(() => {
res.sendStatus(200);
})
.catch((error) => {
console.log(error)
debug(`an error occurred creating the ticket: ${error.message}`);
res.status(400).send('The ticket was not created');
});
});
Я рад предоставить больше информации, где это необходимо, но я потерян здесь и не уверен, что нужно для решения этого или, более вероятно, что я делаю неправильно. Как вы, вероятно, можете сказать, это все для меня в новинку.
Это ответ, который я получаю из своего сообщения HTTP:
{
"response": {
"status_code": 400,
"headers": {
"server": "Cowboy",
"connection": "close",
"x-powered-by": "Express",
"content-type": "text/html; charset=utf-8",
"content-length": "26",
"etag": "W/\"1a-vV63UJ4QvBHXPkXtRjN8HhDrha0\"",
"date": "Fri, 24 Jan 2020 21:07:50 GMT",
"via": "1.1 vegur"
},
"body": "The ticket was not created"
}
}
Я использую стороннюю платформу SAAS для отправки ПОЧТОВЫЙ запрос. Это Tray.io.
Вот полезная нагрузка, которую я отправляю. Не уверен, что если что-то мне не хватает. Информация о билете - это общее сообщение c, подробно изложенное в репо.
{
"body": {
"raw": "{\n \"id\": \"1234\",\n \"link\": \"https://somehelpdesk.localhost\",\n \"title\": \"Test ticket\",\n \"description\": \"Oh no! Something went wrong and now everything is on fire :fire:\",\n \"requester\": \"Leia\",\n \"status\": \"Open\",\n \"agent\": \"Chewy\",\n \"priority\": \"High\"\n}"
},
"queries": [],
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"auth": {},
"follow_redirect": false,
"parse_response": "true",
"url": "https://membership-slack-bot.herokuapp.com/incoming",
"reject_unauthorized": true,
"tls": {}
}