node-telegram-bot-api disable links preview

145 Views Asked by At

I've tried the following options, but I still see the link preview

await BOT.sendMessage(message.chat.id, uiMessage, menuOptions, {disable_web_page_preview: true })
await BOT.sendMessage(message.chat.id, uiMessage, menuOptions, { parse_mode: 'Markdown'})
await BOT.sendMessage(message.chat.id, uiMessage, menuOptions, { parse_mode: 'Markdown', disable_web_page_preview: true })
await BOT.sendMessage(message.chat.id, uiMessage, menuOptions, [{ parse_mode: 'Markdown'}, {disable_web_page_preview: true }])
1

There are 1 best solutions below

0
On BEST ANSWER

The disable_web_page_preview is part of the options parameter.

Looking at the sendMessage documentation:

chatId      Number|String   Unique identifier for the target chat or username of the target channel (in the format @channelusername)  
text        String          Text of the message to be sent  
[options]   Object          Additional Telegram query options

So you should extend menuOptions to also include disable_web_page_preview:

await BOT.sendMessage(message.chat.id, uiMessage, {disable_web_page_preview: true })

A litte snippet to test this:

const TelegramBot = require('node-telegram-bot-api');

const token = 'xxxxxxxx:AAEjLUL8Lx67lYEA3B2O7lSVhlCio3SVR9k';
const chatId = 12345678;

const bot = new TelegramBot(token, { polling: false });

bot.sendMessage(chatId, 'Link Test');
bot.sendMessage(chatId, '[Foo Bar](https://github.com/FFmpeg/FFmpeg)', { parse_mode: 'MarkDown', disable_web_page_preview: false });
bot.sendMessage(chatId, '[Foo Bar](https://github.com/FFmpeg/FFmpeg)', { parse_mode: 'MarkDown', disable_web_page_preview: true });

Shows as: enter image description here