как использовать официальный API Telegram внутри библиотеки телеграфа

Я пытаюсь создать бота телеграммы, используя библиотеку telegraf и npm.

и проблема в том, что я не могу найти способ использовать все методы телеграммы, такие как channels.getFullChannel или channels.getMessages, внутри API телеграфа...

в официальных документах телеграммы есть методы, которые я хочу использовать, например этот, но я не знаю, как получить к нему доступ с помощью экземпляра телеграфа.

я использую это для своего кода:

const Telegraf = require('Telegraf');

const bot = new Telegraf(process.env.TOKEN);

bot.command('logmessages', async (ctx) => {
  const res = ctx.telegram.channels.getMessages('@username')

  console.log(res)

  ctx.reply('check out console')
})

но что получается в консоли:

TypeError: Cannot read property 'getMessages' of undefined

at /app/node_modules/telegraf/composer.js:143:56
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Promise.all (index 0)

Должен упомянуть, что в официальных документах указано, что эти методы доступны для ботов.

Я также тестировал

ctx.channels.getMessages('@username')

тоже не работал


person Hamid Bakhtiari    schedule 04.09.2020    source источник
comment
У вас есть код или ошибки, которые вы можете добавить?   -  person Leo Gaunt    schedule 04.09.2020
comment
я отредактировал вопрос!   -  person Hamid Bakhtiari    schedule 04.09.2020


Ответы (1)


привет, вы должны изменить свой конструктор классов и установить channelMode True

const bot =  new Telegraf(Token, {

channelMode: true

})

тогда вы должны использовать событие для получения сообщения канала что-то вроде этого

bot.on('channel_post', (ctx) => {
 

console.log(ctx.channelPost);

})

он будет регистрировать каждое сообщение канала на всех каналах. Вы можете использовать Simple, если условие для регистрации этого канала вам нужно

person Ruzi    schedule 11.02.2021
comment
это возвращает новые сообщения при их отправке... мне нужно получить доступ ко всем сообщениям в истории канала - person Hamid Bakhtiari; 20.02.2021