0

我使用 telegraf.js 创建了电报机器人

机器人工作正常,但是如果用户直接从机器人内部发送消息,我需要处理不同的事情,假设机器人应该使用帮助命令文档重播(例如)。

问题是:

如何识别用户开始聊天的位置?来自聊天组内部还是直接来自机器人内部?

我试过

 var groupInfo =await ctx.telegram.getChat()

没有成功

我认为解决方案很简单,但直到现在我都找不到。

谢谢你。

4

1 回答 1

1

您应该查看 Telegram 文档以了解Chat类型。它有一个名为的字段Type,根据文档:

聊天类型,可以是“私人”、“群组”、“超级群组”或“频道”</p>

因此,在 telegraf.js 中,您可以通过以下方式检查该字段:

bot.on('text', (ctx) => {
    return ctx.reply(`Chat type is: ${ctx.message.chat.type}`)
})

在您的情况下,ctx.message.chat.type == "private"将是私下发送到您的机器人的消息,ctx.message.chat.type == "group"或者ctx.message.chat.type == "supergroup"是发送到组的消息。

于 2021-11-09T11:34:45.510 回答