@user3336191

Как отправить ответ в telegram используя ответ от парсера в node js?

Если просто парсить страницу и вывести ответ в консоль, то все работает правильно

63a1b75872630676285492.png

если этот ответ добавить к ответу telegram-бота с помощью await ctx.reply telegraph, возникает ошибка

node_modules\telegraf\lib\core\network\client.js:293
throw new error_1.default(data, { method, payload });
response: {
ok: false,
error_code: 400,
description: 'Bad Request: message text is empty'
},
on: {
method: 'sendMessage',
payload: { chat_id: 27190544, message_thread_id: undefined }
}
}

Node.js v18.12.1
[nodemon] app crashed - waiting for file changes before starting...

const { Telegraf, Markup } = require('telegraf');
const BOT_TOKEN = "*****************************************";
const bot = new Telegraf(BOT_TOKEN);
const axios = require("axios");
const cheerio = require("cheerio");

async function getString() {
    await axios.get("https://www.federalreserve.gov/releases/h10/current/").then((response) => {
      const $ = cheerio.load(response.data);
      const table = $("table");

      for (let i = 0; i < table.length; i++) {
        let tr = $(table[i]).find("tr")[4];
        console.log(tr.tostring());
        return $(tr).text();
      }
    })
    .catch((err) => console.log("Fetch error " + err));
  }
  
bot.start((ctx) => {
    ctx.reply('restart!')
});

bot.command('test', async (ctx) => {
    ctx.reply("Click it", Markup.inlineKeyboard(
        [
            [Markup.button.callback('PEACE', 'PEACE')]
        ]
    ))
});

bot.action('PEACE', async (ctx) => {
    await ctx.answerCbQuery()
    await ctx.reply(getString())
});


bot.launch();


Help me please
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
А принимает ли функция ctx.reply промис? может быть, нужно сделать так?
await ctx.reply(await getString())
Ответ написан
Комментировать
@user3336191 Автор вопроса
на оверфлоу подсказали как сделать
return await axios.get( and await ctx.reply(await getString())
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы