reply from group chat (telegram bot – support) (NODE JS)

Issue

help please, I am writing a telegram bot for feedback, at the moment it works in a private chat (i.e. the user writes to the bot – I answer reply the bot via reply and the user receives SMS from the bot), but does not work in the group chat( in a group I can see the user’s messages, but I can’t reply to the user through reply). it is necessary that any user from the group can reply to the user’s message

 const bot = new Telegraf(token, {});

let replyText = {
    'helloAdmin': '...',
    'helloUser': '...',
    'replyWrong': '....'
};
let isAdmin = userId => {
    return userId === admin;
};
let forwardToAdmin = ctx => {
    if (isAdmin(ctx.message.from.id)) {
        ctx.reply(replyText.replyWrong);
    } else {
        ctx.forwardMessage(admin, ctx.from.id, ctx.message.id);
    }
};
bot.start(ctx => {
    ctx.reply(isAdmin(ctx.message.from.id)
        ? replyText.helloAdmin
        : replyText.helloUser);
});

bot.on('message', ctx => {
    if (ctx.message.reply_to_message && ctx.message.reply_to_message.forward_from && isAdmin(ctx.message.from.id)) {
        ctx.telegram.sendCopy(ctx.message.reply_to_message.forward_from.id, ctx.message);
    } else {
        forwardToAdmin(ctx);
    }
});
bot.launch();

Solution

there is a getChatAdministrators method (https://core.telegram.org/bots/api#getchatadministrators), I guess you can use it to get Admins of the group and check if one of them is replied. In that case forward it back to user

Answered By – RomanistHere

Answer Checked By – Robin (AngularFixing Admin)

Leave a Reply

Your email address will not be published.