Я пытаюсь отправить файл PDF, используя URL-адрес файла и используя метод «sendDocument», проблема в том, что я не могу получить доступ к файлу напрямую из-за сервера, на котором он хранится.Я попытался использовать ответ, приведенный в этом сообщении: readFileSync из URL-адреса для средств массовой информации Twitter - node.js
Это работает, но файл отправляется как "file.doc".Если я изменю расширение на pdf, это правильный файл.Есть ли какой-то дополнительный шаг, который мне нужно сделать, чтобы отправить файл с правильным именем и расширением, или есть другой способ, которым я могу достичь того, что мне нужно?
РЕДАКТИРОВАТЬ: Код, который я использую для получения PDF, выглядит точно так же, как код в ответе на пост, который я предоставил:
function getImage(url, callback) {
https.get(url, res => {
// Initialise an array
const bufs = [];
// Add the data to the buffer collection
res.on('data', function (chunk) {
bufs.push(chunk)
});
// This signifies the end of a request
res.on('end', function () {
// We can join all of the 'chunks' of the image together
const data = Buffer.concat(bufs);
// Then we can call our callback.
callback(null, data);
});
})
// Inform the callback of the error.
.on('error', callback);
}
Чтобы отправить файл, я использую что-то вроде этого:
getImage(url, function(err, data){
if(err){
throw new Error(err);
}
bot.sendDocument(
msg.chat.id,
data,
);
})