0

我会在电报频道上用电报发送一条消息。我已经邀请了机器人并让他成为管理员。

我用这段代码测试过:

bot.on('text', (ctx) => {
  // Explicit usage
  ctx.telegram.sendMessage(ctx.message.chat.id, `Hello ${ctx.state.role}`)

  // Using context shortcut
  // ctx.reply(`Hello ${ctx.state.role}`)
})
bot.launch();

但它只有在我私下写信时才会回复。那么为什么它在频道上不起作用呢?比我如何在没有命令的情况下在该频道中发送消息?(例如与和间隔?

我试试这个:

bot.use((ctx) => {
  console.log(ctx.message)
})

当我在私人聊天中(与他)使用机器人时,它会返回所有消息数据。在我收到未定义的频道上

4

1 回答 1

0

在您的情况下,CTX 有当前的聊天信息,如果您想向频道发送消息,请提供正确的 ID,如Telegraf sendMessage 所述

telegram.sendMessage(process.env.TELEGRAM_CHANNEL, ctx.message.text);

我将机器人用于公共频道,所以在我的情况下是:

TELEGRAM_CHANNEL=@MY_PUBLIC_CHANNEL_NAME

频道名称在频道信息设置中可用t.me/MY_PUBLIC_CHANNEL_NAME

于 2020-10-13T21:42:39.277 回答