首页 > 解决方案 > How to use 'Markdown' in parse_mode of telegram bot?

问题描述

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> I want to get some hyperlink in telegram. But instead of that I'm getting [hyperlink](http://some_url).

What is going wrong here? The message here is always a string like [title](url).

标签: node.jstelegram-bot

解决方案


Are you using the node-telegram-bot-api npm module?

I think you want to be using bot.onText method not .on. I've just tried with both, and when using .on the callback function never runs.

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 });
});

Have you tried adding some kind of logging to this method to see if it ever actually runs, and that your getBySearchQuery(..) is returning the expected message?


推荐阅读