javascript - 电报 - 节点 API。当我触发特定的正则表达式匹配时,如何获取我回复的用户的用户 ID?
问题描述
假设聊天中有一个用户消息,而我作为另一个用户执行以下操作
回复他的文字:/tip 50
我基本上想以某种方式接收我已回答的用户 (他的 id) 和第二个参数。我似乎无法这样做,因为 msg 不包含您回答的用户的 ID
我现在真的什么都没有,这是我的代码
`bot.onText(/\/tip/,(msg,res) => {
var tg_chat_id = msg.chat.id
var tg_ser_id = msg.from.id
console.log(res)
console.log(msg)
// bot.onReplyToMessage(msg.chat.id, msg.from.id)
})`
我正在考虑记录 msg 并在那里找到我回答的用户 ID。但我看不到它。也许我可以使用 bot.onReplyToMessage 来实现它,但我不明白。
解决方案
要在方法中捕获传递的参数onText
,您需要正确组合正则表达式并将匹配传递给回调函数。要回复特定消息,请将reply_to_message_id
选项传递给sendMessage
方法,如下所示:
bot.onText(/\/tip (.+)/, (msg, match) => {
let chatId = msg.chat.id;
let messageId = msg.message_id;
let tipValue = match[1];
bot.sendMessage(chatId, `You tipped with value: ${tipValue}`, {
reply_to_message_id: messageId
});
});
这将导致以下机器人的回复:
推荐阅读
- codenameone - 在cn1libs中使用cn1libs?
- opengl - 无法访问 GLSL 中的 vec4 数组
- java - 在 OnCreate 方法之外的 TextView 上设置文本的问题
- c# - Unity:将 Vector2 转换为 Vector2Int
- php - 5 秒后自动关闭 HTML 页面
- python - numpy.empty() 返回的值是否随机?
- tensorflow - A2C 无法正常工作,因为批评者损失没有收敛
- php - 如何在字符串中插入 php if 语句
- mysql - Django Mysql Many 2 Many field IN 多个数组(每个数组至少匹配一个)
- php - 读取时文件被截断