如何让我的机器人在不使用 force_reply
的情况下接收响应?像 botFather
这样的东西吗?
假设我已经向用户发送了这样的消息:
bot.sendMessage(chatId, 'What is your name?', { parse_mode: 'HTML' });
现在如何获得用户响应?
答案 0 :(得分:0)
如果没有 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?');
}
});
注意:这只是一个例子!该代码可以扩展为包括多项检查,并可能会说明用户正在回复什么消息。
答案 1 :(得分:0)
您所需要的只是一个与用户私下交谈的聊天机器人。有很多电报聊天机器人库可以监听对话并做出相应的响应,我个人使用电报库,它提供了全方位的电报 API。
为了使其更智能,您可以将其与 NLP、dialogflow (google) 或 Wit.ai (facebook) 集成。我更喜欢更直接的facebook
您可以让机器人执行特定任务,例如提供天气预报、讲笑话或问候
您可以在这里查看示例:
https://youtu.be/YIeEermeXEU 源代码 https://github.com/simple3838/node-telegram-witai-lesson1