Как использовать 'Markdown' в parse_mode бота telegram? - PullRequest
0 голосов
/ 19 апреля 2019
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 });
    });

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

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

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Эта ваша причина не работает, потому что вы назвали ее 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 и вот ответ:

enter image description here

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

ГДЕ ВЫ ИДЕТЕ.Надеюсь, это поможет

0 голосов
/ 19 апреля 2019

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

Я думаю, вы хотите использовать 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(..) возвращает ожидаемое сообщение?

...