node-telegram-bot-api禁用链接预览无效,多方案尝试仍未解决
解决node-telegram-bot-api链接预览无法关闭的问题
你的问题核心是sendMessage方法的参数传递错误,node-telegram-bot-api的sendMessage仅接受三个核心参数:chatId、text、options,你把菜单配置(menuOptions)单独作为第三个参数传入,导致后续的disable_web_page_preview等配置项完全不生效。
错误写法的问题分析
你尝试的所有写法都错误拆分了options参数:
- 把菜单配置和其他配置拆成多个独立参数传递
- 用数组包裹配置项
这些都不符合API的参数规范,自然无法生效。
正确写法示例
假设你的menuOptions是包含reply_markup的菜单配置,正确的调用方式是将所有配置合并到同一个options对象中:
await BOT.sendMessage(message.chat.id, uiMessage, { ...menuOptions, // 展开菜单配置 parse_mode: 'Markdown', disable_web_page_preview: true });
也可以直接把所有配置写在一个对象里:
await BOT.sendMessage(message.chat.id, uiMessage, { reply_markup: { /* 你的菜单按钮、键盘等配置 */ }, parse_mode: 'Markdown', disable_web_page_preview: true });
额外排查点
如果按上述写法仍有链接预览,检查:
uiMessage中的链接是否是Telegram强制生成预览的特殊域名(如部分官方平台域名),这类情况无法通过参数关闭- 确认node-telegram-bot-api版本是否过旧,建议升级到最新稳定版
内容的提问来源于stack exchange,提问作者Руслан Миров
相关产品推荐
相关产品推荐

