首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电报机器人获取响应

电报机器人获取响应
EN

Stack Overflow用户
提问于 2021-05-20 10:19:22
回答 1查看 551关注 0票数 0

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

假设我向用户发送了这样的消息:

代码语言:javascript
复制
bot.sendMessage(chatId, 'What is your name?', { parse_mode: 'HTML' });

现在,我如何获得用户响应?

EN

回答 1

Stack Overflow用户

发布于 2021-05-21 20:51:21

如果没有force_reply的帮助,您将需要编写一些自定义逻辑。我在我的自定义机器人中实现了这一点,如下所示:

  1. 向用户bot.sendMessage()发送问题,并记住ID
  2. bot.on('message')
  3. Check a message if we‘we Wait on this user
  4. Reply

代码语言:javascript
复制
// 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?');
    }
});

注意::这只是一个例子!代码可以扩展为包括多个检查,并可能包括状态,以查看用户回复的是什么消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67613100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档