1

我正在尝试使用电报和 npm创建电报机器人

问题是我找不到使用所有电报方法的方法,比如channels.getFullChannelchannels.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)

我应该提到,在官方文档中指出这些方法可以被 Bots 访问。

我也测试过

ctx.channels.getMessages('@username')

也没有用

4

1 回答 1

0

你好你应该修改你的类构造函数并将channelMode设置为True

const bot =  new Telegraf(Token, {

channelMode: true

})

那么你应该使用事件来获取类似的频道消息

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

console.log(ctx.channelPost);

})

它将记录所有频道中的每个频道帖子。您可以使用 Simple if 条件来记录您想要的此频道

于 2021-02-11T15:17:38.327 回答