Привет всем!
Я прохожу курс “Курсы JavaScript от 0 до PRO – Полное руководство” и столкнулся с проблемой при создании бота на Node.js с использованием Telegraf и Google Translate API.
Вот часть кода, который у меня есть:
const { Telegraf } = require('telegraf');
const translate = require('google-translate-api-x');
const botToken = 'bootToken';
const bot = new Telegraf(botToken);
const targetChannel = '@channelName';
const allowedUserId = 0000000000;
bot.on('message', async (ctx) => {
if (ctx.from && ctx.from.id === allowedUserId) {
try {
let translatedText = '';
if (ctx.message.text) {
const originalText = ctx.message.text;
try {
const translation = await translate(originalText, { from: 'en', to: 'ar' });
translatedText = translation.text;
} catch (error) {
console.error('Translation error:', error);
translatedText = originalText;
}
}
const mediaGroup = [];
if (ctx.message.photo) {
const highestQualityPhoto = ctx.message.photo[ctx.message.photo.length - 1];
mediaGroup.push({ type: 'photo', media: highestQualityPhoto.file_id });
}
if (ctx.message.video) {
mediaGroup.push({ type: 'video', media: ctx.message.video.file_id });
}
if (mediaGroup.length > 0 && translatedText) {
mediaGroup[0].caption = translatedText;
}
if (mediaGroup.length > 0) {
await bot.telegram.sendMediaGroup(targetChannel, mediaGroup);
} else if (translatedText) {
await bot.telegram.sendMessage(targetChannel, translatedText);
}
} catch (error) {
console.error('Error processing or sending message:', error);
}
} else {
console.log(`Message ignored from user: ${ctx.from.username} (ID: ${ctx.from.id})`);
}
});
bot.launch().then(() => {
console.log('Bot is running...');
}).catch((error) => {
console.error('Failed to launch bot:', error);
});
Проблема в том, что код не работает, как ожидалось. Может быть кто-то сталкивался с чем-то подобным и сможет мне помочь? Я буду очень признателен за любые советы или рекомендации!
Спасибо!