Возникает ошибка ETELEGRAM:
400 Bad Request: message to react not found
Я использую API node-telegram-bot и пытаюсь установить реакцию на сообщение в канале с помощью метода setMessageReaction:
bot.setMessageReaction method('@channel_name', message_id, [
{type: 'emoji', emoji: '👍' },
])
Но я получаю следующую ошибку:
ETELEGRAM: 400 Bad Request: message to react not found
В чем может быть причина, если идентификатор сообщения правильный?

Ваш бот должен иметь необходимые разрешения для добавления реакций в целевой чат.
const TelegramBot = require('node-telegram-bot-api');
const token = 'YOUR_BOT_TOKEN';
const bot = new TelegramBot(token, { polling: true });
const chatId = 123456789;
const messageId = 123;
const reaction = [{ type: 'emoji', emoji: '👍' }];
bot.setMessageReaction(chatId, messageId, reaction)
.then(() => {
console.info('Reaction added successfully!');
})
.catch(error => {
console.error('Error adding reaction:', error);
});
обычно вам нужно добавить бота в качестве администратора на канал. Это связано с тем, что большинство взаимодействий с контентом канала, помимо базового чтения, требуют административных привилегий.
Да, это так работает, спасибо! результат возвращает true, но смайлик не отображался в самом сообщении. было бы интереснее, если бы можно было ставить реакции на какие-нибудь каналы :)
Проблема не в разрешениях, а в том, что эмодзи нужно передавать таким образом.
const reaction = [{ type: 'emoji', emoji: '🤬' }];
bot.setMessageReaction(chatId, messageId, {reaction: JSON.stringify(reaction)})
и как мы можем установить счетчик реакции?
но Ариян тоже прав, боту нужны разрешения
Разрешения одинаковы для ботов и пользователей. Причём специального разрешения на использование реакций нет, отключить их можно, только полностью отключив их в чате или канале.
К сожалению, нет возможности указать количество реакций под одно сообщение. Один пользователь ставит одну реакцию, и бот тоже является пользователем. Конечно, все еще есть премиум-пользователи, которые могут иметь три реакции, но ботам в настоящее время не разрешено иметь премиум-класс. Обещания, которые будут даны в будущем.
Спасибо за ответ. в документации, похоже, нет ничего о необходимых разрешениях. поэтому я подумал, что можно задать реакцию в любом открытом канале, где доступны реакции. как добавить боту необходимые разрешения?