Как отправить POST через axios в telegra.ph API?
Отправляю пост в telegraph API c помощью axios.post() в nodejs. в ответ получаю, что невалидный токен. хотя, если отправлять с помощь axios.get() то все получается. мне нужен post потому что в гет не принимает длинных текстов так как данные передаются в параметрах url
возможно, передаю не правильный объект или что-то не там где нужно застрингифаил.
вот код:
const requestTelegraphPOST = async (url, data) => {
try {
return await axios.post(url, data)
} catch (error) {
console.error(error)
}
}
requestTelegraphPOST('https://api.telegra.ph/createPage', {
access_token: ACCESS_TOKEN,
title,
content
}).then(data => {
if (data.data.result) {
const telegraphPostUrl = data.data.result.url
sendPost(telegraphPostUrl)
} else {
console.log(chalk.yellow('Не удалось создать пост. Ответ от Telegraph API:'))
console.log(data.data)
}
}).catch(err => console.error(err))
Здесь документация по API https://telegra.ph/api
Ответы (1 шт):
Скорее всего уходит пустое тело запроса.
Для отправки данных через post в axios нужно ещё пара моментов. Можно попробовать добавить заголовки, в вашем случае это будет:
const requestTelegraphPOST = async (url, data) => {
try {
return await axios.post(url, data, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
} catch (error) {
console.error(error)
}
}
Или есть вариант ещё собирать data через FormData и её уже отдавать в post:
const formData = new FormData();
formData.append('access_token', ACCESS_TOKEN);
...
Мне больше нравится второй вариант.