@magpro

Как отправить вопросы и использовать ответы на node telegram Bot api?

Не могу понять, как в node telegram Bot api получать и отправлять последовательные сообщения?
Пример.
Бот задает вопрос: Кому вы хотите написать?
Пользователь отправляет ответ с ID пользователя:
Бот запоминает Id и говорит, такой пользователь найден, что ему написать?
Пользователь отправляет сообщение.
Бот принимает сообщение и затем отправляет сообщение адресату.

Собственно вот код:
if (result==='peredat'){
            bot.sendMessage(chatId,'Отправьте мне ID получателя:');
            bot.on('message', (msg) => {
            const chatId = msg.chat.id
            conn.query("SELECT * FROM `users` WHERE `id_tlg`="+msg.text, function(err, results){
              console.log(results[0])
              if (results[0].user_name != 'undefined'){
                var nick=results[0].user_name
              } else {
                var nick=results[0].first_name
              }
conn.query("SELECT * FROM `users` WHERE `id_tlg`="+chatId, function(err, results2){
              var option = {
       "parse_mode": "HTML",
   };
              bot.sendMessage(chatId,'Сколько баллов отправить пользователю с ID=<b>'+results[0].id+' ('+nick+')</b>?\nВы можете отправить не более <b>'+results2[0].ball+'</b> баллов',option);

              bot.on('message', (msg) => {
                const chatId = msg.chat.id
                console.log(msg.text)
              })

            })


            });

          })




     };
   })

Смысл в отправке баллов
  • Вопрос задан
  • 1692 просмотра
Пригласить эксперта
Ответы на вопрос 1
@dGololobov
начинающий
Посмотрите в сторону telegraf.js. Лично мне эта либа больше понравилась.
Но не суть.
Нужно правильно определить что выхотите получить. В какой момент бот спросит пользователя "кому написать?". и т.п вопросы. То что вы хотите сделать очень просто. Нужно "слушать" сообщения пользователя. Проводить с ними какие-то действия и отправлять ответы либо самому пользователю, либо адресату.
bot.onText(/^[0-9]$/, (msg, match) => {

  const resp = match[1];  // полученный от пользователя id
 /*
   Тут он ищет id по базе
*/
  // Отправляем ответ пользователю
  bot.sendMessage(msg.chat.id, resp); // Таким же образом можно пересылать текст в чат с другим пользователем
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы