Всем привет, в общем пишу приложение на Vue.js, там будет раздел новостей, новости должны браться из телеграмм канала. Я написал простенький файл на express и node.js:
const express = require('express');
const axios = require('axios');
const app = express();
const BOT_TOKEN = 'мой_токен;
const CHANNEL_ID = 'мой_айди';
app.get('/news', async (req, res) => {
try {
const response = await axios.get(`https://api.telegram.org/bot${BOT_TOKEN}/getUpdates`);
const data = response.data;
const messages = await Promise.all(data.result
.filter(update => update.channel_post && update.channel_post.chat.id === CHANNEL_ID)
.map(async update => {
const post = update.channel_post;
let photoUrl = null;
if (post.photo) {
const fileId = post.photo[post.photo.length - 1].file_id; // Используем последнюю фотографию (самую большую)
const fileResponse = await axios.get(`https://api.telegram.org/bot${BOT_TOKEN}/getFile?file_id=${fileId}`);
const filePath = fileResponse.data.result.file_path;
photoUrl = `https://api.telegram.org/file/bot${BOT_TOKEN}/${filePath}`;
}
return {
text: post.caption ?? post.text,
date: new Date(post.date * 1000),
photo: photoUrl,
};
})
);
res.json(messages);
} catch (error) {
console.error(error);
res.status(500).send('Error fetching news');
}
});
app.get('/status', (req, res) => {
res.send('Server is running');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Все окей, только если я удалю сообщение в тг канале, то оно все равно будет приходить в ответе на запрос, можно ли как-то получать только актуальные сообщения (не удаленные), я использую метод getUpdates. (Я создал бота и добавил его в канал с правами администратора)