电报:无法使用TelegrafNodeJs将消息/照片发送到频道

问题描述

我会使用telegraf在电报频道上发送一条消息。我邀请了该漫游器并让他成为管理员

我已经使用以下代码进行了测试:

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();

但是只有当我私人写信时,它才会回复。 那么,为什么它在频道上不起作用? 比起没有命令我该如何在该频道中发送消息呢? (例如with和interval?

我尝试这个:

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

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

解决方法

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

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

我在公共频道上使用漫游器,因此我的情况是:

TELEGRAM_CHANNEL=@MY_PUBLIC_CHANNEL_NAME

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...