如何禁用Telegram Bot私聊中的消息转发功能?
阻止Telegram Bot消息被转发的实现方案
1. 发送消息时直接禁用转发权限
这是最有效的方式,Telegram Bot API支持在发送消息时指定disable_forwarding参数,开启后用户收到的消息会隐藏转发按钮,无法直接通过客户端自带功能转发。
用node-telegram-bot-api库的示例代码:
const TelegramBot = require('node-telegram-bot-api'); // 替换为你的Bot Token const bot = new TelegramBot('YOUR_BOT_TOKEN', { polling: true }); // 发送禁止转发的消息 bot.sendMessage(targetChatId, '这条消息不允许转发', { disable_forwarding: true });
2. 监控并处理已转发的消息
如果用户通过复制文本、转发到Bot可见聊天等非常规手段传播消息,可以监听消息事件,判断是否为转发内容,再执行删除或警告操作。
示例代码:
bot.on('message', (msg) => { // 判断消息是否来自转发(包括从用户或频道转发) const isForwarded = !!msg.forward_from || !!msg.forward_from_chat; if (isForwarded) { // 删除转发的消息(需要Bot拥有对应聊天的删除消息权限) bot.deleteMessage(msg.chat.id, msg.message_id) .catch(err => console.log('删除消息失败:', err)); // 发送警告提示 bot.sendMessage(msg.chat.id, '禁止转发Bot相关消息,请遵守规则!'); } });
关键说明
disable_forwarding仅对Bot主动发送的消息生效,无法控制用户自主发送的内容。- 监控转发的逻辑只能覆盖Bot所在的聊天会话,如果用户转发到Bot未加入的群组/频道,Bot无法检测到。
- 少数第三方客户端可能绕过
disable_forwarding限制,但官方客户端和主流第三方客户端都会遵循该设置。
内容的提问来源于stack exchange,提问作者DotNetStar A
相关产品推荐
相关产品推荐

