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。但是我得到的不是[hyperlink](http://some_url)
。
这是怎么回事?这里的message
总是像[title](url)
这样的字符串。
答案 0 :(得分:0)
您是否正在使用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(..)
返回的是预期的消息?
答案 1 :(得分:0)
您之所以无法工作的原因是因为您将其称为parse_mode
而不是parseMode
(See doc)
尝试一下,它应该可以工作。
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
,这是回复:
您去了。希望对您有帮助