Как использовать ‘Markdown’ в parse_mode бота telegram?

#node.js #telegram-bot

#node.js #telegram-бот

Вопрос:

 bot.on(/^/s (. )$/, async function(msg, props) {
      let id = msg.chat.id;
      let message = await MyBot.getBySearchQuery(props.match[1]);
      let parse_mode = 'Markdown';
      return bot.sendMessage(id, message, { parse_mode });
    });
 

By /s <param> Я хочу получить какую-нибудь гиперссылку в telegram. Но вместо этого я получаю [hyperlink](http://some_url) .

Что здесь происходит не так? message Здесь всегда есть строка , подобная [title](url) .

Ответ №1:

Причина, по которой ваш не работает, заключается в том, что вы вызвали его parse_mode вместо parseMode (см. Документ)

Попробуйте это, это должно сработать.

 const TeleBot = require('telebot');

const bot = new TeleBot('35353453:sfsdfsdffgrtyrty454646thfhfgfgh')

bot.on(/^/s (. )$/, async function(msg, props) {
  const id = msg.chat.id;
  const url = "https://google.com";
  const message = `Read more about [Google](${url}) now!!!!`;

  return bot.sendMessage(id, message, { parseMode: 'Markdown' });
});

bot.start();
 

Хорошо, я протестировал его, и он работает хорошо. Я отправил /s ert , и вот ответ:

введите описание изображения здесь

Итак, теперь позвольте мне нажать Google , и вы увидите всплывающее окно: введите описание изображения здесь

ВОТ ТАК. Надеюсь, это поможет

Ответ №2:

Используете ли вы модуль npm node-telegram-bot-api?

Я думаю, вы не хотите использовать bot.onText метод .on . Я только что попробовал использовать оба варианта, и при использовании .on функция обратного вызова никогда не запускается.

 bot.onText(/^/s (. )$/, async function(msg, props) {
  let id = msg.chat.id;
  let message = await MyBot.getBySearchQuery(props.match[1]);
  let parse_mode = 'Markdown';
  return bot.sendMessage(id, message, { parse_mode });
});

 

Вы пробовали добавить какое-то ведение журнала к этому методу, чтобы увидеть, действительно ли он когда-либо запускается, и что ваш getBySearchQuery(..) возвращает ожидаемое сообщение?

Комментарии:

1. Да, getBySearchQuery(..) возвращает ожидаемое сообщение

2. @EvgenyBagrov тогда вы пробовали использовать parseMode в качестве имени параметра вместо этого? github.com/mullwar /…