如何让我的机器人在不使用force_reply的情况下接收响应?像botFather那样的东西?

假设我向用户发送了这样的消息:
bot.sendMessage(chatId, 'What is your name?', { parse_mode: 'HTML' });现在,我如何获得用户响应?
发布于 2021-05-21 20:51:21
如果没有force_reply的帮助,您将需要编写一些自定义逻辑。我在我的自定义机器人中实现了这一点,如下所示:
bot.sendMessage()发送问题,并记住IDbot.on('message')// Create bot
const TelegramBot = require('node-telegram-bot-api');
const bot = new TelegramBot('XXXXXXXX:AAEibBwftjTEKuYd9d2X0ACeyyzTk4DLe60', {
polling: true
});
// List of id's we're waiting for
const wait = [];
// Hardcoded chat id
const chatId = 1234567;
// Ask and add to wait list
bot.sendMessage(chatId, 'What is your name?', { parse_mode: 'HTML' });
wait.push(chatId);
// On message
bot.on('message', (msg) => {
// Check we're waiting on this user
if (wait.includes(msg.chat.id)) {
// Send reply
bot.sendMessage(chatId, 'Your name: ' + msg.text );
// Remove from wait list
wait.splice(wait.indexOf(msg.chat.id), 1);
} else {
// Normal message; notify user
bot.sendMessage(chatId, 'Hi! I\'m not expecting a reply from you! How can I help?');
}
});

注意::这只是一个例子!代码可以扩展为包括多个检查,并可能包括状态,以查看用户回复的是什么消息。
https://stackoverflow.com/questions/67613100
复制相似问题